<?xml version="1.0"?>
<doc>
    <assembly>
        <name>CodeSmith.Data</name>
    </assembly>
    <members>
        <member name="T:CodeSmith.Data.Attributes.IpAddressAttribute">
            <summary>
            Assigns the current user's IP address to the property for the specified entity states.
            </summary>
            <example>
            <para>Add rule using the Metadata class and attribute.</para>
            <code><![CDATA[
            private class Metadata
            {
                // fragment of the metadata class
            
                [IpAddress(EntityState.Dirty)]
                public string IpAddress { get; set; }
            }
            ]]></code>
            </example>
            <seealso cref="T:CodeSmith.Data.Rules.Assign.IpAddressRule"/>
        </member>
        <member name="T:CodeSmith.Data.Attributes.RuleAttributeBase">
            <summary>
            A base class for rule attributes.
            </summary>
        </member>
        <member name="M:CodeSmith.Data.Attributes.RuleAttributeBase.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Attributes.RuleAttributeBase"/> class.
            </summary>
        </member>
        <member name="M:CodeSmith.Data.Attributes.RuleAttributeBase.CreateRule(System.String)">
            <summary>
            Creates the rule.
            </summary>
            <param name="property">The property name this rule applies to.</param>
            <returns>A new instance of the rule.</returns>
        </member>
        <member name="P:CodeSmith.Data.Attributes.RuleAttributeBase.State">
            <summary>
            Gets or sets the state.
            </summary>
            <value>The state of the object that the rule can run on.</value>
        </member>
        <member name="M:CodeSmith.Data.Attributes.IpAddressAttribute.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Attributes.IpAddressAttribute"/> class.
            </summary>
        </member>
        <member name="M:CodeSmith.Data.Attributes.IpAddressAttribute.#ctor(CodeSmith.Data.Rules.EntityState)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Attributes.IpAddressAttribute"/> class.
            </summary>
            <param name="state">State of the object that can be assigned.</param>
        </member>
        <member name="M:CodeSmith.Data.Attributes.IpAddressAttribute.CreateRule(System.String)">
            <summary>
            Creates the rule.
            </summary>
            <param name="property">The property name this rule applies to.</param>
            <returns>A new instance of the rule.</returns>
        </member>
        <member name="M:CodeSmith.Data.Attributes.IpAddressAttribute.IsValid(System.Object)">
            <summary>
            Determines whether the specified value of the object is valid.
            </summary>
            <param name="value">The value of the specified validation object on which the <see cref="T:System.ComponentModel.DataAnnotations.ValidationAttribute"/> is declared.</param>
            <returns>
            true if the specified value is valid; otherwise, false.
            </returns>
        </member>
        <member name="T:CodeSmith.Data.Attributes.UserNameAttribute">
            <summary>
            Assigns the current users name to the property for the specified entity states.
            </summary>
            <example>
            <para>Add rule using the Metadata class and attribute.</para>
            <code><![CDATA[
            private class Metadata
            {
                // fragment of the metadata class
            
                [UserName(EntityState.New)]
                public string CreatedBy { get; set; }
            
                [UserName(EntityState.Dirty)]
                public string ModifiedBy { get; set; }
            }
            ]]></code>
            </example>
            <seealso cref="T:CodeSmith.Data.Rules.Assign.UserNameRule"/>
        </member>
        <member name="M:CodeSmith.Data.Attributes.UserNameAttribute.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Attributes.UserNameAttribute"/> class.
            </summary>
        </member>
        <member name="M:CodeSmith.Data.Attributes.UserNameAttribute.#ctor(CodeSmith.Data.Rules.EntityState)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Attributes.UserNameAttribute"/> class.
            </summary>
            <param name="state">State of the object that can be assigned.</param>
        </member>
        <member name="M:CodeSmith.Data.Attributes.UserNameAttribute.CreateRule(System.String)">
            <summary>
            Creates the rule.
            </summary>
            <param name="property">The property name this rule applies to.</param>
            <returns>A new instance of the rule.</returns>
        </member>
        <member name="M:CodeSmith.Data.Attributes.UserNameAttribute.IsValid(System.Object)">
            <summary>
            Determines whether the specified value of the object is valid.
            </summary>
            <param name="value">The value of the specified validation object on which the <see cref="T:System.ComponentModel.DataAnnotations.ValidationAttribute"/> is declared.</param>
            <returns>
            true if the specified value is valid; otherwise, false.
            </returns>
        </member>
        <member name="T:CodeSmith.Data.Attributes.GuidAttribute">
            <summary>
            Assigns a new GUID to the property for the specified entity states.
            </summary>
            <example>
            <para>Add rule using the Metadata class and attribute.</para>
            <code><![CDATA[
            private class Metadata
            {
                // fragment of the metadata class
            
                [Guid(EntityState.New)]
                public Guid UserId { get; set; }
            }
            ]]></code>
            </example>
            <seealso cref="T:CodeSmith.Data.Rules.Assign.GuidRule"/>
        </member>
        <member name="M:CodeSmith.Data.Attributes.GuidAttribute.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Attributes.GuidAttribute"/> class.
            </summary>
        </member>
        <member name="M:CodeSmith.Data.Attributes.GuidAttribute.#ctor(CodeSmith.Data.Rules.EntityState)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Attributes.GuidAttribute"/> class.
            </summary>
            <param name="state">State of the object that can be assigned.</param>
        </member>
        <member name="M:CodeSmith.Data.Attributes.GuidAttribute.CreateRule(System.String)">
            <summary>
            Creates the rule.
            </summary>
            <param name="property">The property name this rule applies to.</param>
            <returns>A new instance of the rule.</returns>
        </member>
        <member name="M:CodeSmith.Data.Attributes.GuidAttribute.IsValid(System.Object)">
            <summary>
            Determines whether the specified value of the object is valid.
            </summary>
            <param name="value">The value of the specified validation object on which the <see cref="T:System.ComponentModel.DataAnnotations.ValidationAttribute"/> is declared.</param>
            <returns>
            true if the specified value is valid; otherwise, false.
            </returns>
        </member>
        <member name="T:CodeSmith.Data.Attributes.NowAttribute">
            <summary>
            Assigns the current date / time to the property for the specified entity states.
            </summary>
            <example>
            <para>Add rule using the Metadata class and attribute.</para>
            <code><![CDATA[
            private class Metadata
            {
                // fragment of the metadata class
            
                [Now(EntityState.New)]
                public DateTime CreatedDate { get; set; }
            
                [Now(EntityState.Dirty)]
                public DateTime ModifiedDate { get; set; }
            }
            ]]></code>
            </example>
            <seealso cref="T:CodeSmith.Data.Rules.Assign.NowRule"/>
        </member>
        <member name="M:CodeSmith.Data.Attributes.NowAttribute.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Attributes.NowAttribute"/> class.
            </summary>
        </member>
        <member name="M:CodeSmith.Data.Attributes.NowAttribute.#ctor(CodeSmith.Data.Rules.EntityState)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Attributes.NowAttribute"/> class.
            </summary>
            <param name="state">State of the object that can be assigned.</param>
        </member>
        <member name="M:CodeSmith.Data.Attributes.NowAttribute.#ctor(CodeSmith.Data.Rules.EntityState,CodeSmith.Data.Rules.Assign.NowTimeZone)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Attributes.NowAttribute"/> class.
            </summary>
            <param name="state">State of the object that can be assigned.</param>
            <param name="timeZone">The time zone.</param>
        </member>
        <member name="M:CodeSmith.Data.Attributes.NowAttribute.CreateRule(System.String)">
            <summary>
            Creates the rule.
            </summary>
            <param name="property">The property name this rule applies to.</param>
            <returns>A new instance of the rule.</returns>
        </member>
        <member name="M:CodeSmith.Data.Attributes.NowAttribute.IsValid(System.Object)">
            <summary>
            Determines whether the specified value of the object is valid.
            </summary>
            <param name="value">The value of the specified validation object on which the <see cref="T:System.ComponentModel.DataAnnotations.ValidationAttribute"/> is declared.</param>
            <returns>
            true if the specified value is valid; otherwise, false.
            </returns>
        </member>
        <member name="T:CodeSmith.Data.Audit.AlwaysAuditAttribute">
            <summary>
            Indicates that a field in an audited class should always be included in the audit data even if it hasn't been changed.
            </summary>
            <seealso cref="T:CodeSmith.Data.Audit.AuditAttribute"/>
            <seealso cref="T:CodeSmith.Data.Audit.NotAuditedAttribute"/>
            <seealso cref="T:CodeSmith.Data.Audit.AuditManager"/>
        </member>
        <member name="T:CodeSmith.Data.Audit.AuditAction">
            <summary>
            A list of entity actions for the audit log.
            </summary>
        </member>
        <member name="F:CodeSmith.Data.Audit.AuditAction.Insert">
            <summary>
            The entity was inserted.
            </summary>
        </member>
        <member name="F:CodeSmith.Data.Audit.AuditAction.Update">
            <summary>
            The entity was updated.
            </summary>
        </member>
        <member name="F:CodeSmith.Data.Audit.AuditAction.Delete">
            <summary>
            The entity was deleted.
            </summary>
        </member>
        <member name="T:CodeSmith.Data.Audit.AuditAttribute">
            <summary>
            Indicates that a class can be audited.
            </summary>
            <remarks>
            Use the <see cref="T:CodeSmith.Data.Audit.NotAuditedAttribute"/> attribute to prevent a field from being included in the audit
            </remarks>
            <seealso cref="T:CodeSmith.Data.Audit.AuditManager"/>
            <seealso cref="T:CodeSmith.Data.Audit.NotAuditedAttribute"/>
            <seealso cref="T:CodeSmith.Data.Audit.AlwaysAuditAttribute"/>
        </member>
        <member name="T:CodeSmith.Data.Audit.AuditEntity">
            <summary>
            A class for logging the changes to an entity.
            </summary>
        </member>
        <member name="M:CodeSmith.Data.Audit.AuditEntity.Equals(CodeSmith.Data.Audit.AuditEntity)">
            <summary>
            Indicates whether the current object is equal to another object of the same type.
            </summary>
            <returns>
            true if the current object is equal to the <paramref name="other" /> parameter; otherwise, false.
            </returns>
            <param name="other">An object to compare with this object.</param>
        </member>
        <member name="M:CodeSmith.Data.Audit.AuditEntity.Equals(System.Object)">
            <summary>
            Determines whether the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" />.
            </summary>
            <returns>
            true if the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" />; otherwise, false.
            </returns>
            <param name="obj">The <see cref="T:System.Object" /> to compare with the current <see cref="T:System.Object" />. </param>
        </member>
        <member name="M:CodeSmith.Data.Audit.AuditEntity.GetHashCode">
            <summary>
            Serves as a hash function for a particular type.
            </summary>
            <returns>
            A hash code for the current <see cref="T:System.Object" />.
            </returns>
        </member>
        <member name="P:CodeSmith.Data.Audit.AuditEntity.Action">
            <summary>
            Gets or sets the action that was taken on the entity.
            </summary>
            <value>The action that was taken on the entity.</value>
        </member>
        <member name="P:CodeSmith.Data.Audit.AuditEntity.Type">
            <summary>
            Gets or sets the data type of the entity.
            </summary>
            <value>The data type of the entity.</value>
        </member>
        <member name="P:CodeSmith.Data.Audit.AuditEntity.Keys">
            <summary>
            Gets the list of properties that are the key for the entity.
            </summary>
            <value>The list of properties that are the key for the entity.</value>
        </member>
        <member name="P:CodeSmith.Data.Audit.AuditEntity.Original">
            <summary>
            Gets the entity in its original unmodified state.
            </summary>
        </member>
        <member name="P:CodeSmith.Data.Audit.AuditEntity.Current">
            <summary>
            Gets the entity in its current modified state.
            </summary>
        </member>
        <member name="P:CodeSmith.Data.Audit.AuditEntity.Properties">
            <summary>
            Gets the list of properties that action was taken on.
            </summary>
            <value>The list of properties that action was taken on.</value>
        </member>
        <member name="P:CodeSmith.Data.Audit.AuditKey.Name">
            <summary>
            Gets or sets the name of the property.
            </summary>
            <value>The name of the property.</value>
        </member>
        <member name="P:CodeSmith.Data.Audit.AuditKey.Type">
            <summary>
            Gets or sets the type of the property.
            </summary>
            <value>The type of the property.</value>
        </member>
        <member name="P:CodeSmith.Data.Audit.AuditKey.Value">
            <summary>
            Gets or sets the current/changed value of the property.
            </summary>
            <value>The current value of the property.</value>
        </member>
        <member name="T:CodeSmith.Data.Audit.AuditKeyCollection">
            <summary>
            A keyed collection of <see cref="T:CodeSmith.Data.Audit.AuditKey"/>
            </summary>
        </member>
        <member name="M:CodeSmith.Data.Audit.AuditKeyCollection.GetKeyForItem(CodeSmith.Data.Audit.AuditKey)">
            <summary>
            When implemented in a derived class, extracts the key from the specified element.
            </summary>
            <param name="item">The element from which to extract the key.</param>
            <returns>The key for the specified element.</returns>
        </member>
        <member name="T:CodeSmith.Data.Audit.AuditManager">
            <summary>
            A class to create an <see cref="T:CodeSmith.Data.Audit.AuditLog"/> from the changes in a <see cref="T:System.Data.Linq.DataContext"/>.
            </summary>
        </member>
        <member name="M:CodeSmith.Data.Audit.AuditManager.CreateAuditLog(System.Data.Linq.DataContext)">
            <summary>
            Creates the <see cref="T:CodeSmith.Data.Audit.AuditLog"/> of changes form the specified <see cref="T:System.Data.Linq.DataContext"/>.
            </summary>
            <param name="dataContext">The <see cref="T:System.Data.Linq.DataContext"/> to get the changes from.</param>
            <returns>An instance of <see cref="T:CodeSmith.Data.Audit.AuditLog"/> that is an audit log of the changes to <see cref="T:System.Data.Linq.DataContext"/>.</returns>
            <remarks>
            An entity has to be marked with the <see cref="T:CodeSmith.Data.Audit.AuditAttribute"/> for audit data to be collected for that entity.
            </remarks>
        </member>
        <member name="M:CodeSmith.Data.Audit.AuditManager.MergeAuditLogs(CodeSmith.Data.Audit.AuditLog[])">
            <summary>
            Merges the audit logs together.
            </summary>
            <param name="logs">The list logs to merge together.</param>
            <returns>An instance of <see cref="T:CodeSmith.Data.Audit.AuditLog"/> with all other logs merged in.</returns>
        </member>
        <member name="M:CodeSmith.Data.Audit.AuditManager.Refresh(CodeSmith.Data.Audit.AuditLog)">
            <summary>
            Refreshes the current properties in the audit log.
            </summary>
            <param name="log">The audit log to refresh.</param>
        </member>
        <member name="M:CodeSmith.Data.Audit.AuditManager.ReadLock(System.Threading.ReaderWriterLockSlim)">
            <summary>
            Gets the read lock.
            </summary>
            <returns></returns>
        </member>
        <member name="M:CodeSmith.Data.Audit.AuditManager.WriteLock(System.Threading.ReaderWriterLockSlim)">
            <summary>
            Gets the write lock.
            </summary>
            <returns></returns>
        </member>
        <member name="T:CodeSmith.Data.Audit.AuditProperty">
            <summary>
            A class for logging the changes to a property on an entity.
            </summary>
        </member>
        <member name="P:CodeSmith.Data.Audit.AuditProperty.Name">
            <summary>
            Gets or sets the name of the property.
            </summary>
            <value>The name of the property.</value>
        </member>
        <member name="P:CodeSmith.Data.Audit.AuditProperty.Type">
            <summary>
            Gets or sets the type of the property.
            </summary>
            <value>The type of the property.</value>
        </member>
        <member name="P:CodeSmith.Data.Audit.AuditProperty.IsForeignKey">
            <summary>
            Gets or sets a value indicating whether this property is a foreign key.
            </summary>
            <value>
            	<c>true</c> if this property is a foreign key; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:CodeSmith.Data.Audit.AuditProperty.IsAssociation">
            <summary>
            Gets or sets a value indicating whether this property is an association.
            </summary>
            <value>
            	<c>true</c> if this property is an association; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:CodeSmith.Data.Audit.AuditProperty.ForeignKey">
            <summary>
            Gets or sets the property names that this association maps to.
            </summary>
            <value>The property names that this association maps to..</value>
        </member>
        <member name="P:CodeSmith.Data.Audit.AuditProperty.Current">
            <summary>
            Gets or sets the current/changed value of the property.
            </summary>
            <value>The current value of the property.</value>
        </member>
        <member name="P:CodeSmith.Data.Audit.AuditProperty.Original">
            <summary>
            Gets or sets the original value of the property.
            </summary>
            <value>The original value of the property.</value>
        </member>
        <member name="T:CodeSmith.Data.Audit.AuditLog">
            <summary>
            A class representing a log of the changes to a <see cref="T:System.Data.Linq.DataContext"/>.
            </summary>
        </member>
        <member name="F:CodeSmith.Data.Audit.AuditLog.AuditNamespace">
            <summary>
            The schema namespace for the audit log.
            </summary>
        </member>
        <member name="M:CodeSmith.Data.Audit.AuditLog.ToXml">
            <summary>
            Returns an XML string of the <see cref="T:CodeSmith.Data.Audit.AuditLog"/>.
            </summary>
            <returns>An XML string of the <see cref="T:CodeSmith.Data.Audit.AuditLog"/>.</returns>
        </member>
        <member name="M:CodeSmith.Data.Audit.AuditLog.FromXml(System.String)">
            <summary>
            Returns an <see cref="T:CodeSmith.Data.Audit.AuditLog"/> object created from an XML string.
            </summary>
            <param name="auditLog">
            An XML string
            </param>
            <returns>
            An <see cref="T:CodeSmith.Data.Audit.AuditLog"/> object created from an XML string.
            </returns>
        </member>
        <member name="M:CodeSmith.Data.Audit.AuditLog.FromXml(System.Xml.XmlReader)">
            <summary>
            Returns an <see cref="T:CodeSmith.Data.Audit.AuditLog"/> object created from an XML string.
            </summary>
            <param name="reader">The <see cref="T:System.Xml.XmlReader"/> to create the AuditLog from.</param>
            <returns>
            An <see cref="T:CodeSmith.Data.Audit.AuditLog"/> object created from an <see cref="T:System.Xml.XmlReader"/>.
            </returns>
        </member>
        <member name="P:CodeSmith.Data.Audit.AuditLog.Username">
            <summary>
            Gets or sets the user name that made the changes.
            </summary>
            <value>The user name that made the changes.</value>
        </member>
        <member name="P:CodeSmith.Data.Audit.AuditLog.Date">
            <summary>
            Gets or sets the date when the changes were made.
            </summary>
            <value>The date when the changes were made.</value>
        </member>
        <member name="P:CodeSmith.Data.Audit.AuditLog.Entities">
            <summary>
            Gets the list entities that have changes in the <see cref="T:System.Data.Linq.DataContext"/>.
            </summary>
            <value>The list entities that have changes.</value>
        </member>
        <member name="T:CodeSmith.Data.Audit.AuditPropertyCollection">
            <summary>
            A keyed collection of <see cref="T:CodeSmith.Data.Audit.AuditProperty"/>
            </summary>
        </member>
        <member name="M:CodeSmith.Data.Audit.AuditPropertyCollection.GetKeyForItem(CodeSmith.Data.Audit.AuditProperty)">
            <summary>
            Extracts the key from the specified element.
            </summary>
            <param name="item">The element from which to extract the key.</param>
            <returns>The key for the specified element.</returns>
        </member>
        <member name="T:CodeSmith.Data.Audit.AuditPropertyFormatAttribute">
            <summary>
            An attribute to control the output format of the <see cref="T:CodeSmith.Data.Audit.AuditProperty"/> values.
            </summary>
            <example>The following example is used to mask out the password for use in the audit log.
            <code><![CDATA[
            [Audit]
            public partial class User
            {
                [AuditPropertyFormat(typeof(CustomFormat), "FormatPassword")]
                public string Password { get; set; }
            }
            
            public class CustomFormat
            {
                // signature can be either static object MethodName(MemberInfo memberInfo, object value) or static object MethodName(object value).
                public static object FormatPassword(MemberInfo memberInfo, object value)
                {
                    string v = value as string;
                    if (string.IsNullOrEmpty(v))
                        return value;
            
                    return v.Substring(0, 1) + "*****";
                }
            }
            ]]>
            </code>
            </example>
            <remarks>
            The method signature can be either <c>static object MethodName(MemberInfo memberInfo, object value)</c>
             or <c>static object MethodName(object value)</c>.
            </remarks>
        </member>
        <member name="M:CodeSmith.Data.Audit.AuditPropertyFormatAttribute.#ctor(System.Type,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Audit.AuditPropertyFormatAttribute"/> class.
            </summary>
            <param name="formatType">The <see cref="T:System.Type"/> that contains format method.</param>
            <param name="methodName">
            The name of the method to call to format the value.  Method signature can be either 
            <c>static object MethodName(MemberInfo memberInfo, object value)</c> or <c>static object MethodName(object value)</c>.
            </param>
        </member>
        <member name="P:CodeSmith.Data.Audit.AuditPropertyFormatAttribute.FormatType">
            <summary>
            Gets or sets the <see cref="T:System.Type"/> that contains format method.
            </summary>
            <value>The <see cref="T:System.Type"/> that contains format method.</value>
        </member>
        <member name="P:CodeSmith.Data.Audit.AuditPropertyFormatAttribute.MethodName">
            <summary>
            Gets or sets the name of the method to call to format the value. Must be a static method.
            </summary>
            <value>The name of the method to call to format the value.</value>
            <remarks>
            The method signature can be either <c>static object MethodName(MemberInfo memberInfo, object value)</c>
             or <c>static object MethodName(object value)</c>.
            </remarks>
        </member>
        <member name="T:CodeSmith.Data.Audit.NotAuditedAttribute">
            <summary>
            Indicates that a field in an audited class should not be included in the audit log.
            </summary>
            <remarks>
            Use the NotAuditedAttribute attribute to prevent a field from being included in the audit.
            </remarks>
            <seealso cref="T:CodeSmith.Data.Audit.AuditAttribute"/>
            <seealso cref="T:CodeSmith.Data.Audit.AlwaysAuditAttribute"/>
            <seealso cref="T:CodeSmith.Data.Audit.AuditManager"/>
        </member>
        <member name="T:CodeSmith.Data.Caching.CacheManager">
            <summary>
            A class to manage cached items via a provider.
            </summary>
            <example>The following example gets an item to the default cache provider.
            <code><![CDATA[
            CacheManager.Set("key", "some cached data");
            var data = CacheManager.Get<string>("key");
            ]]>
            </code>
            </example>
            <example>The following example uses CacheManager to expire a cache group.
            <code><![CDATA[
            var db = new TrackerDataContext { Log = Console.Out };
            // get a CacheSettings instance using the default profile with a group of 'Role'.
            var cache = CacheManager.GetProfile().WithGroup("Role");
            
            // queries that can be cached
            var roles = db.Role
                .Where(r => r.Name == "Test Role")
                .FromCache(cache);
            var role = db.Role
                .ByName("Duck Roll")
                .FromCacheFirstOrDefault(cache);
            
            // after you make some update, expire group using InvalidateGroup
            CacheManager.GetProvider().InvalidateGroup("Role");
            ]]>
            </code>
            </example>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheManager.#cctor">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Caching.CacheManager"/> class.
            </summary>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheManager.RegisterProvider``1(System.String,System.Boolean)">
            <summary>
            Registers the specified provider name.
            </summary>
            <typeparam name="T">The type of the provider.</typeparam>
            <param name="providerName">Name of the provider.</param>
            <param name="defaultProvider">if set to <c>true</c> this provider will be set as default.</param>
            <returns>A new instance of the provider.</returns>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheManager.RegisterProvider(System.String,System.Boolean,System.Func{System.String,CodeSmith.Data.Caching.ICacheProvider})">
            <summary>
            Registers the specified provider name.
            </summary>
            <param name="providerName">Name of the provider.</param>
            <param name="defaultProvider">if set to <c>true</c> this provider will be set as default.</param>
            <param name="createFactory">The factory to create a new provider.</param>
            <returns>A new instance of the provider.</returns>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheManager.RegisterProvider``1">
            <summary>
            Registers the specified provider name.
            </summary>
            <typeparam name="T">The type of the provider.</typeparam>
            <returns>A new instance of the provider.</returns>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheManager.RegisterProvider``1(System.Boolean)">
            <summary>
            Registers the specified provider name.
            </summary>
            <typeparam name="T">The type of the provider.</typeparam>
            <param name="defaultProvider">if set to <c>true</c> this provider will be set as default.</param>
            <returns>A new instance of the provider.</returns>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheManager.GetProvider">
            <summary>
            Gets the default cache provider.
            </summary>
            <returns>An instance of the provider.</returns>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheManager.GetProvider(System.String)">
            <summary>
            Gets the provider by name. If <paramref name="providerName"/> is <see langword="null"/>, the default provider is returned.
            </summary>
            <param name="providerName">Name of the provider.</param>
            <returns>An instance of the provider.</returns>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheManager.GetProvider``1">
            <summary>
            Gets the provider by the type.
            </summary>
            <typeparam name="T">The type of the provider.</typeparam>
            <returns>An instance of the provider.</returns>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheManager.GetProfile">
            <summary>
            Gets an instance of <see cref="T:CodeSmith.Data.Caching.CacheSettings"/> based on the default profile.
            </summary>
            <returns>An instance of <see cref="T:CodeSmith.Data.Caching.CacheSettings"/>.</returns>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheManager.GetProfile(System.String)">
            <summary>
            Gets an instance of <see cref="T:CodeSmith.Data.Caching.CacheSettings"/> based on the profile name. 
            If the profile name is not found, the default profile is used.
            </summary>
            <param name="profileName">Name of the cache profile.</param>
            <returns>An instance of <see cref="T:CodeSmith.Data.Caching.CacheSettings"/>.</returns>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheManager.Set``1(System.String,``0)">
            <summary>
            Saves the specified key to the default cache provider.
            </summary>
            <typeparam name="T">The type for data being saved,</typeparam>
            <param name="key">The key used to store the data in the cache provider.</param>
            <param name="data">The data to be cached in the provider.</param>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheManager.Set``1(System.String,``0,System.Int32)">
            <summary>
            Saves the specified key to the default cache provider for a specific duration.
            </summary>
            <typeparam name="T">The type for data being saved,</typeparam>
            <param name="key">The key used to store the data in the cache provider.</param>
            <param name="data">The data to be cached in the provider.</param>
            <param name="duration">The duration to store the data in the cache.</param>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheManager.Set``1(System.String,``0,System.String)">
            <summary>
            Saves the specified key using the settings from the specified cache profile.
            </summary>
            <typeparam name="T">The type for data being saved,</typeparam>
            <param name="key">The key used to store the data in the cache provider.</param>
            <param name="data">The data to be cached in the provider.</param>
            <param name="profile">The name of the cache profile to use.</param>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheManager.Set``1(System.String,``0,CodeSmith.Data.Caching.CacheSettings)">
            <summary>
            Saves the specified key using the settings from the specified cache profile.
            </summary>
            <typeparam name="T">The type for data being saved,</typeparam>
            <param name="key">The key used to store the data in the cache provider.</param>
            <param name="data">The data to be cached in the provider.</param>
            <param name="settings">The <see cref="T:CodeSmith.Data.Caching.CacheSettings"/> to be used when storing in the provider.</param>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheManager.Remove(System.String)">
            <summary>
            Removes the specified key from the default cache provider.
            </summary>
            <param name="key">The key used to store the data in the cache provider.</param>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheManager.Remove(System.String,System.String)">
            <summary>
            Removes the combined key and group name from the default cache provider.
            </summary>
            <param name="key">The key used to store the data in the cache provider.</param>
            <param name="groupName">Name of the group.</param>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheManager.Get(System.String)">
            <summary>
            Gets the data cached for the specified key from the default cache provider.
            </summary>
            <param name="key">The key used to store the data in the cache provider.</param>
            <returns>An instance of T if the item exists in the cache, otherwise <see langword="null"/>.</returns>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheManager.Get``1(System.String)">
            <summary>
            Gets the data cached for the specified key from the default cache provider.
            </summary>
            <typeparam name="T">The type for data being retrieved from cache,</typeparam>
            <param name="key">The key used to store the data in the cache provider.</param>
            <returns>An instance of T if the item exists in the cache, otherwise <see langword="null"/>.</returns>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheManager.Get``1(System.String,System.String)">
            <summary>
            Gets the data cached for the combined key and group name from the default cache provider.
            </summary>
            <typeparam name="T">The type for data being retrieved from cache,</typeparam>
            <param name="key">The key used to store the data in the cache provider.</param>
            <param name="groupName">Name of the group.</param>
            <returns>
            An instance of T if the item exists in the cache, otherwise <see langword="null"/>.
            </returns>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheManager.GetOrSet``1(System.String,``0)">
            <summary>
            Saves a key/value pair to the cache if the key does not already exist.
            </summary>
            <typeparam name="T">The type for data being retrieved from cache,</typeparam>
            <param name="key">The key used to store the data in the cache provider.</param>
            <param name="data">The data to be cached in the provider.</param>
            <returns>
            An instance of T that will be either the existing value for the key if the key is already in the cache, 
            or the new value if the key was not in the cache.
            </returns>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheManager.GetOrSet``1(System.String,System.String,``0)">
            <summary>
            Saves a key/value pair to the cache if the key does not already exist.
            </summary>
            <typeparam name="T">The type for data being retrieved from cache,</typeparam>
            <param name="key">The key used to store the data in the cache provider.</param>
            <param name="group">The name of the cache group.</param>
            <param name="data">The data to be cached in the provider.</param>
            <returns>
            An instance of T that will be either the existing value for the key if the key is already in the cache, 
            or the new value if the key was not in the cache.
            </returns>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheManager.GetOrSet``1(System.String,``0,CodeSmith.Data.Caching.CacheSettings)">
            <summary>
            Saves a key/value pair to the cache if the key does not already exist.
            </summary>
            <typeparam name="T">The type for data being retrieved from cache,</typeparam>
            <param name="key">The key used to store the data in the cache provider.</param>
            <param name="data">The data to be cached in the provider.</param>
            <param name="settings">The <see cref="T:CodeSmith.Data.Caching.CacheSettings"/> to be used when storing in the provider.</param>
            <returns>
            An instance of T that will be either the existing value for the key if the key is already in the cache,
            or the new value if the key was not in the cache.
            </returns>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheManager.GetOrSet``1(System.String,System.Func{System.String,``0})">
            <summary>
            Saves a key/value pair to the cache if the key does not already exist.
            </summary>
            <typeparam name="T">The type for data being retrieved from cache,</typeparam>
            <param name="key">The key used to store the data in the cache provider.</param>
            <param name="valueFactory">The function used to generate a value for the key.</param>
            <returns>
            An instance of T that will be either the existing value for the key if the key is already in the cache, 
            or the new value if the key was not in the cache.
            </returns>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheManager.GetOrSet``1(System.String,System.String,System.Func{System.String,``0})">
            <summary>
            Saves a key/value pair to the cache if the key does not already exist.
            </summary>
            <typeparam name="T">The type for data being retrieved from cache,</typeparam>
            <param name="key">The key used to store the data in the cache provider.</param>
            <param name="group">The name of the cache group.</param>
            <param name="valueFactory">The function used to generate a value for the key.</param>
            <returns>
            An instance of T that will be either the existing value for the key if the key is already in the cache, 
            or the new value if the key was not in the cache.
            </returns>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheManager.GetOrSet``1(System.String,System.Func{System.String,``0},CodeSmith.Data.Caching.CacheSettings)">
            <summary>
            Saves a key/value pair to the cache if the key does not already exist.
            </summary>
            <typeparam name="T">The type for data being retrieved from cache,</typeparam>
            <param name="key">The key used to store the data in the cache provider.</param>
            <param name="valueFactory">The function used to generate a value for the key.</param>
            <param name="settings">The <see cref="T:CodeSmith.Data.Caching.CacheSettings"/> to be used when storing in the provider.</param>
            <returns>
            An instance of T that will be either the existing value for the key if the key is already in the cache, 
            or the new value if the key was not in the cache.
            </returns>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheManager.Exists(System.String)">
            <summary>
            Checks to see if the specified key exists.
            </summary>
            <param name="key">The key used to store the data in the cache provider.</param>
            <returns>True if the item exists.</returns>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheManager.Exists(System.String,System.String)">
            <summary>
            Checks to see if the specified key exists.
            </summary>
            <param name="key">The key used to store the data in the cache provider.</param>
            <param name="group">The name of the cache group.</param>
            <returns>True if the item exists.</returns>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheManager.InvalidateGroup">
            <summary>
            Invalidates the cache items for the default group from the default cache provider.
            </summary>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheManager.InvalidateGroup(System.String)">
            <summary>
            Invalidates the cache items for the specified group from the default cache provider.
            </summary>
            <param name="groupName">Name of the group.</param>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheManager.InvalidateGroup``1(System.String)">
            <summary>
            /// Invalidates the cache items for the specified group from the specified cache provider.
            </summary>
            <typeparam name="T">The type of the provider.</typeparam>
            <param name="groupName">Name of the group.</param>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheManager.InvalidateGroups(System.Collections.Generic.IEnumerable{System.String})">
            <summary>
            Invalidates the cache items for the specified groups from the default cache provider.
            </summary>
            <param name="groupNames">Names of the groups.</param>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheManager.InvalidateGroups(System.String[])">
            <summary>
            Invalidates the cache items for the specified groups from the default cache provider.
            </summary>
            <param name="groupNames">Names of the groups.</param>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheManager.InvalidateGroups``1(System.Collections.Generic.IEnumerable{System.String})">
            <summary>
            Invalidates the cache items for the specified groups from the specified cache provider.
            </summary>
            <typeparam name="T">The type of the provider.</typeparam>
            <param name="groupNames">Names of the groups.</param>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheManager.InvalidateGroups``1(System.String[])">
            <summary>
            Invalidates the cache items for the specified groups from the specified cache provider.
            </summary>
            <typeparam name="T">The type of the provider.</typeparam>
            <param name="groupNames">Names of the groups.</param>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheManager.Clear">
            <summary>
            Invalidates all cache items for all loaded providers.
            </summary>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheManager.Clear``1">
            <summary>
            Invalidates all cache items from the specified cache provider.
            </summary>
            <typeparam name="T">The type of the provider.</typeparam>
        </member>
        <member name="P:CodeSmith.Data.Caching.CacheManager.DefaultGroup">
            <summary>
            The default group for cache items to be inserted into.
            </summary>
        </member>
        <member name="P:CodeSmith.Data.Caching.CacheManager.DefaultProvider">
            <summary>
            The default provider for cache items.
            </summary>
        </member>
        <member name="T:CodeSmith.Data.Caching.CacheManagerSection">
            <summary>
            A class for CacheManager configuration settings section.
            </summary>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheManagerSection.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Caching.CacheManagerSection"/> class.
            </summary>
        </member>
        <member name="P:CodeSmith.Data.Caching.CacheManagerSection.DefaultProvider">
            <summary>
            Gets or sets the default provider name.
            </summary>
            <value>The default provider name.</value>
        </member>
        <member name="P:CodeSmith.Data.Caching.CacheManagerSection.DefaultProfile">
            <summary>
            Gets or sets the default profile name.
            </summary>
            <value>The default profile name.</value>
        </member>
        <member name="P:CodeSmith.Data.Caching.CacheManagerSection.DefaultGroup">
            <summary>
            Gets or sets the default group name.
            </summary>
            <value>The default group name.</value>
        </member>
        <member name="P:CodeSmith.Data.Caching.CacheManagerSection.Profiles">
            <summary>
            Gets the cache profiles.
            </summary>
            <value>The cache profiles.</value>
        </member>
        <member name="P:CodeSmith.Data.Caching.CacheManagerSection.Providers">
            <summary>
            Gets the cache providers.
            </summary>
            <value>The cache providers.</value>
        </member>
        <member name="T:CodeSmith.Data.Caching.ProfileElement">
            <summary>
            Profile configuration element.
            </summary>
        </member>
        <member name="M:CodeSmith.Data.Caching.ProfileElement.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Caching.ProfileElement"/> class.
            </summary>
        </member>
        <member name="M:CodeSmith.Data.Caching.ProfileElement.ToCacheSettings">
            <summary>
            Converts the profile element to a <see cref="T:CodeSmith.Data.Caching.CacheSettings"/> instance.
            </summary>
            <returns>An instance of <see cref="T:CodeSmith.Data.Caching.CacheSettings"/>.</returns>
        </member>
        <member name="P:CodeSmith.Data.Caching.ProfileElement.Name">
            <summary>
            Gets or sets the name of the profile.
            </summary>
            <value>The name of the profile.</value>
        </member>
        <member name="P:CodeSmith.Data.Caching.ProfileElement.Description">
            <summary>
            Gets or sets the description for the profile.
            </summary>
            <value>The description for the profile.</value>
        </member>
        <member name="P:CodeSmith.Data.Caching.ProfileElement.Duration">
            <summary>
            Gets or sets the expiration duration.
            </summary>
            <value>The expiration duration.</value>
        </member>
        <member name="P:CodeSmith.Data.Caching.ProfileElement.Provider">
            <summary>
            Gets or sets the cache provider name.
            </summary>
            <value>The cache provider name.</value>
        </member>
        <member name="P:CodeSmith.Data.Caching.ProfileElement.Group">
            <summary>
            Gets or sets the group key of the profile.
            </summary>
            <value>The name of the group key.</value>
        </member>
        <member name="P:CodeSmith.Data.Caching.ProfileElement.Mode">
            <summary>
            Gets or sets a value indicating the cache expiration mode.
            </summary>
            <value>The cache expiration mode.</value>
        </member>
        <member name="T:CodeSmith.Data.Caching.ProfileElementCollection">
            <summary>
            A collection for <see cref="T:CodeSmith.Data.Caching.ProfileElement"/>.
            </summary>
        </member>
        <member name="M:CodeSmith.Data.Caching.ProfileElementCollection.CreateNewElement">
            <summary>
            When overridden in a derived class, creates a new <see cref="T:System.Configuration.ConfigurationElement"/>.
            </summary>
            <returns>
            A new <see cref="T:System.Configuration.ConfigurationElement"/>.
            </returns>
        </member>
        <member name="M:CodeSmith.Data.Caching.ProfileElementCollection.GetElementKey(System.Configuration.ConfigurationElement)">
            <summary>
            Gets the element key for a specified configuration element when overridden in a derived class.
            </summary>
            <param name="element">The <see cref="T:System.Configuration.ConfigurationElement"/> to return the key for.</param>
            <returns>
            An <see cref="T:System.Object"/> that acts as the key for the specified <see cref="T:System.Configuration.ConfigurationElement"/>.
            </returns>
        </member>
        <member name="T:CodeSmith.Data.Caching.CacheProvider">
            <summary>
            A base class for cache providers.
            </summary>
        </member>
        <member name="T:CodeSmith.Data.Caching.ICacheProvider">
            <summary>
            An interface defining a cache provider.
            </summary>
        </member>
        <member name="M:CodeSmith.Data.Caching.ICacheProvider.Set``1(System.String,``0)">
            <summary>
            Saves the specified key to the cache provider.
            </summary>
            <typeparam name="T">The type for data being saved,</typeparam>
            <param name="key">The key used to store the data in the cache provider.</param>
            <param name="data">The data to be cached in the provider.</param>
        </member>
        <member name="M:CodeSmith.Data.Caching.ICacheProvider.Set``1(System.String,``0,System.Int32)">
            <summary>
            Saves the specified key to the cache provider for a specific duration.
            </summary>
            <typeparam name="T">The type for data being saved,</typeparam>
            <param name="key">The key used to store the data in the cache provider.</param>
            <param name="data">The data to be cached in the provider.</param>
            <param name="duration">The duration to store the data in the cache.</param>
        </member>
        <member name="M:CodeSmith.Data.Caching.ICacheProvider.Set``1(System.String,``0,System.String)">
            <summary>
            Saves the specified key to the cache provider using settings from a named cache profile.
            </summary>
            <typeparam name="T">The type for data being saved,</typeparam>
            <param name="key">The key used to store the data in the cache provider.</param>
            <param name="data">The data to be cached in the provider.</param>
            <param name="profile">The name of the cache profile to use.</param>
        </member>
        <member name="M:CodeSmith.Data.Caching.ICacheProvider.Set``1(System.String,``0,CodeSmith.Data.Caching.CacheSettings)">
            <summary>
            Saves the specified key to the cache provider.
            </summary>
            <typeparam name="T">The type for data being saved,</typeparam>
            <param name="key">The key used to store the data in the cache provider.</param>
            <param name="data">The data to be cached in the provider.</param>
            <param name="settings">The <see cref="T:CodeSmith.Data.Caching.CacheSettings"/> to be used when storing in the provider.</param>
        </member>
        <member name="M:CodeSmith.Data.Caching.ICacheProvider.Remove(System.String)">
            <summary>
            Removes the specified key from the cache provider.
            </summary>
            <param name="key">The key used to store the data in the cache provider.</param>
            <returns>True if the item was successfully removed.</returns>
        </member>
        <member name="M:CodeSmith.Data.Caching.ICacheProvider.Remove(System.String,System.String)">
            <summary>
            Removes the combined key and group name from the cache provider.
            </summary>
            <param name="key">The key used to store the data in the cache provider.</param>
            <param name="group">The name of the cache group.</param>
            <returns>True if the item was successfully removed.</returns>
        </member>
        <member name="M:CodeSmith.Data.Caching.ICacheProvider.Get(System.String)">
            <summary>
            Gets the data cached for the specified key.
            </summary>
            <param name="key">The key used to store the data in the cache provider.</param>
            <returns>An object containing the cached data.</returns>
        </member>
        <member name="M:CodeSmith.Data.Caching.ICacheProvider.Get(System.String,System.String)">
            <summary>
            Gets the data cached for the specified key.
            </summary>
            <param name="key">The key used to store the data in the cache provider.</param>
            <param name="group">The name of the cache group.</param>
            <returns>An object containing the cached data.</returns>
        </member>
        <member name="M:CodeSmith.Data.Caching.ICacheProvider.Get``1(System.String)">
            <summary>
            Gets the data cached for the specified key.
            </summary>
            <typeparam name="T">The type for data being retrieved from cache,</typeparam>
            <param name="key">The key used to store the data in the cache provider.</param>
            <returns>An instance of T if the item exists in the cache, otherwise <see langword="null"/>.</returns>
        </member>
        <member name="M:CodeSmith.Data.Caching.ICacheProvider.Get``1(System.String,System.String)">
            <summary>
            Gets the data cached for the combined key and group name.
            </summary>
            <typeparam name="T">The type for data being retrieved from cache,</typeparam>
            <param name="key">The key used to store the data in the cache provider.</param>
            <param name="group">The name of the cache group.</param>
            <returns>
            An instance of T if the item exists in the cache, otherwise <see langword="null"/>.
            </returns>
        </member>
        <member name="M:CodeSmith.Data.Caching.ICacheProvider.GetOrSet``1(System.String,``0)">
            <summary>
            Saves a key/value pair to the cache if the key does not already exist.
            </summary>
            <typeparam name="T">The type for data being retrieved from cache,</typeparam>
            <param name="key">The key used to store the data in the cache provider.</param>
            <param name="data">The data to be cached in the provider.</param>
            <returns>
            An instance of T that will be either the existing value for the key if the key is already in the cache, 
            or the new value if the key was not in the cache.
            </returns>
        </member>
        <member name="M:CodeSmith.Data.Caching.ICacheProvider.GetOrSet``1(System.String,System.String,``0)">
            <summary>
            Saves a key/value pair to the cache if the key does not already exist.
            </summary>
            <typeparam name="T">The type for data being retrieved from cache,</typeparam>
            <param name="key">The key used to store the data in the cache provider.</param>
            <param name="group">The name of the cache group.</param>
            <param name="data">The data to be cached in the provider.</param>
            <returns>
            An instance of T that will be either the existing value for the key if the key is already in the cache, 
            or the new value if the key was not in the cache.
            </returns>
        </member>
        <member name="M:CodeSmith.Data.Caching.ICacheProvider.GetOrSet``1(System.String,``0,CodeSmith.Data.Caching.CacheSettings)">
            <summary>
            Saves a key/value pair to the cache if the key does not already exist.
            </summary>
            <typeparam name="T">The type for data being retrieved from cache,</typeparam>
            <param name="key">The key used to store the data in the cache provider.</param>
            <param name="data">The data to be cached in the provider.</param>
            <param name="settings">The <see cref="T:CodeSmith.Data.Caching.CacheSettings"/> to be used when storing in the provider.</param>
            <returns>
            An instance of T that will be either the existing value for the key if the key is already in the cache,
            or the new value if the key was not in the cache.
            </returns>
        </member>
        <member name="M:CodeSmith.Data.Caching.ICacheProvider.GetOrSet``1(System.String,System.Func{System.String,``0})">
            <summary>
            Saves a key/value pair to the cache if the key does not already exist.
            </summary>
            <typeparam name="T">The type for data being retrieved from cache,</typeparam>
            <param name="key">The key used to store the data in the cache provider.</param>
            <param name="valueFactory">The function used to generate a value for the key.</param>
            <returns>
            An instance of T that will be either the existing value for the key if the key is already in the cache, 
            or the new value if the key was not in the cache.
            </returns>
        </member>
        <member name="M:CodeSmith.Data.Caching.ICacheProvider.GetOrSet``1(System.String,System.String,System.Func{System.String,``0})">
            <summary>
            Saves a key/value pair to the cache if the key does not already exist.
            </summary>
            <typeparam name="T">The type for data being retrieved from cache,</typeparam>
            <param name="key">The key used to store the data in the cache provider.</param>
            <param name="group">The name of the cache group.</param>
            <param name="valueFactory">The function used to generate a value for the key.</param>
            <returns>
            An instance of T that will be either the existing value for the key if the key is already in the cache, 
            or the new value if the key was not in the cache.
            </returns>
        </member>
        <member name="M:CodeSmith.Data.Caching.ICacheProvider.GetOrSet``1(System.String,System.Func{System.String,``0},CodeSmith.Data.Caching.CacheSettings)">
            <summary>
            Saves a key/value pair to the cache if the key does not already exist.
            </summary>
            <typeparam name="T">The type for data being retrieved from cache,</typeparam>
            <param name="key">The key used to store the data in the cache provider.</param>
            <param name="valueFactory">The function used to generate a value for the key.</param>
            <param name="settings">The <see cref="T:CodeSmith.Data.Caching.CacheSettings"/> to be used when storing in the provider.</param>
            <returns>
            An instance of T that will be either the existing value for the key if the key is already in the cache, 
            or the new value if the key was not in the cache.
            </returns>
        </member>
        <member name="M:CodeSmith.Data.Caching.ICacheProvider.Exists(System.String)">
            <summary>
            Checks to see if the specified key exists.
            </summary>
            <param name="key">The key used to store the data in the cache provider.</param>
            <returns>True if the item exists.</returns>
        </member>
        <member name="M:CodeSmith.Data.Caching.ICacheProvider.Exists(System.String,System.String)">
            <summary>
            Checks to see if the specified key exists.
            </summary>
            <param name="key">The key used to store the data in the cache provider.</param>
            <param name="group">The name of the cache group.</param>
            <returns>True if the item exists.</returns>
        </member>
        <member name="M:CodeSmith.Data.Caching.ICacheProvider.GetGroupVersion">
            <summary>
            Gets the default group's current version from the cache provider.
            </summary>
            <returns>The group version to append to a key.</returns>
            <remarks>
            The group version is used to combine with the key to aid in expiring keys based on group.
            </remarks>
        </member>
        <member name="M:CodeSmith.Data.Caching.ICacheProvider.GetGroupVersion(System.String)">
            <summary>
            Gets the specified group's current version from the cache provider.
            </summary>
            <param name="group">The name of the cache group.</param>
            <returns>The group version to append to a key.</returns>
            <remarks>
            The group version is used to combine with the key to aid in expiring keys based on group.
            </remarks>
        </member>
        <member name="M:CodeSmith.Data.Caching.ICacheProvider.GetGroupKey(System.String)">
            <summary>
            Gets the combined key based on the specified key and default group name.
            </summary>
            <param name="key">The key to be combined.</param>
            <returns>The combined key based on the specified key and group name.</returns>
        </member>
        <member name="M:CodeSmith.Data.Caching.ICacheProvider.GetGroupKey(System.String,System.String)">
            <summary>
            Gets the combined key based on the specified key and group name.
            </summary>
            <param name="key">The key to be combined.</param>
            <param name="group">The name of the cache group.</param>
            <returns>The combined key based on the specified key and group name.</returns>
        </member>
        <member name="M:CodeSmith.Data.Caching.ICacheProvider.InvalidateGroup">
            <summary>
            Invalidates the cache items for the default cache group.
            </summary>
        </member>
        <member name="M:CodeSmith.Data.Caching.ICacheProvider.InvalidateGroup(System.String)">
            <summary>
            Invalidates the cache items for the specified cache group.
            </summary>
            <param name="group">The name of the cache group.</param>
        </member>
        <member name="M:CodeSmith.Data.Caching.ICacheProvider.Clear">
            <summary>
            Invalidates all cache items.
            </summary>
        </member>
        <member name="P:CodeSmith.Data.Caching.ICacheProvider.Name">
            <summary>
            The name of the cache provider.
            </summary>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheProvider.Set``1(System.String,``0)">
            <summary>
            Saves the specified key to the cache provider.
            </summary>
            <typeparam name="T">The type for data being saved,</typeparam>
            <param name="key">The key used to store the data in the cache provider.</param>
            <param name="data">The data to be cached in the provider.</param>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheProvider.Set``1(System.String,``0,System.Int32)">
            <summary>
            Saves the specified key to the cache provider for a specific duration.
            </summary>
            <typeparam name="T">The type for data being saved,</typeparam>
            <param name="key">The key used to store the data in the cache provider.</param>
            <param name="data">The data to be cached in the provider.</param>
            <param name="duration">The duration to store the data in the cache.</param>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheProvider.Set``1(System.String,``0,System.String)">
            <summary>
            Saves the specified key to the cache provider using settings from a named cache profile.
            </summary>
            <typeparam name="T">The type for data being saved,</typeparam>
            <param name="key">The key used to store the data in the cache provider.</param>
            <param name="data">The data to be cached in the provider.</param>
            <param name="profile">The name of the cache profile to use.</param>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheProvider.Set``1(System.String,``0,CodeSmith.Data.Caching.CacheSettings)">
            <summary>
            Saves the specified key to the cache provider.
            </summary>
            <typeparam name="T">The type for data being saved,</typeparam>
            <param name="key">The key used to store the data in the cache provider.</param>
            <param name="data">The data to be cached in the provider.</param>
            <param name="settings">The <see cref="T:CodeSmith.Data.Caching.CacheSettings"/> to be used when storing in the provider.</param>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheProvider.Remove(System.String)">
            <summary>
            Removes the specified key from the cache provider.
            </summary>
            <param name="key">The key used to store the data in the cache provider.</param>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheProvider.Remove(System.String,System.String)">
            <summary>
            Removes the combined key and group name from the cache provider.
            </summary>
            <param name="key">The key used to store the data in the cache provider.</param>
            <param name="group">Name of the group.</param>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheProvider.InvalidateGroup">
            <summary>
            Invalidates the cache items for the default cache group.
            </summary>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheProvider.InvalidateGroup(System.String)">
            <summary>
            Invalidates the cache items for the specified group name.
            </summary>
            <param name="group">The group used to store the data in the cache provider.</param>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheProvider.Clear">
            <summary>
            Invalidates all cache items.
            </summary>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheProvider.Get(System.String)">
            <summary>
            Gets the data cached for specified key.
            </summary>
            <param name="key">The key used to store the data in the cache provider.</param>
            <returns>
            The object if it exists in the cache, otherwise <see langword="null"/>.
            </returns>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheProvider.Get(System.String,System.String)">
            <summary>
            Gets the data cached for specified key.
            </summary>
            <param name="key">The key used to store the data in the cache provider.</param>
            <param name="group">The name of the cache group.</param>
            <returns>
            The object if it exists in the cache, otherwise <see langword="null"/>.
            </returns>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheProvider.Get``1(System.String)">
            <summary>
            Gets the data cached for specified key.
            </summary>
            <typeparam name="T">The type for data being retrieved from cache,</typeparam>
            <param name="key">The key used to store the data in the cache provider.</param>
            <returns>
            An instance of T if it exists in the cache, otherwise <see langword="null"/>.
            </returns>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheProvider.Get``1(System.String,System.String)">
            <summary>
            Gets the data cached for the combined key and group name.
            </summary>
            <typeparam name="T">The type for data being retrieved from cache,</typeparam>
            <param name="key">The key used to store the data in the cache provider.</param>
            <param name="group">Name of the group.</param>
            <returns>
            An instance of T if the item exists in the cache, otherwise <see langword="null"/>.
            </returns>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheProvider.GetOrSet``1(System.String,``0)">
            <summary>
            Saves a key/value pair to the cache if the key does not already exist.
            </summary>
            <typeparam name="T">The type for data being retrieved from cache,</typeparam>
            <param name="key">The key used to store the data in the cache provider.</param>
            <param name="data">The data to be cached in the provider.</param>
            <returns>
            An instance of T that will be either the existing value for the key if the key is already in the cache,
            or the new value if the key was not in the cache.
            </returns>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheProvider.GetOrSet``1(System.String,System.String,``0)">
            <summary>
            Saves a key/value pair to the cache if the key does not already exist.
            </summary>
            <typeparam name="T">The type for data being retrieved from cache,</typeparam>
            <param name="key">The key used to store the data in the cache provider.</param>
            <param name="group">The name of the cache group.</param>
            <param name="data">The data to be cached in the provider.</param>
            <returns>
            An instance of T that will be either the existing value for the key if the key is already in the cache,
            or the new value if the key was not in the cache.
            </returns>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheProvider.GetOrSet``1(System.String,``0,CodeSmith.Data.Caching.CacheSettings)">
            <summary>
            Saves a key/value pair to the cache if the key does not already exist.
            </summary>
            <typeparam name="T">The type for data being retrieved from cache,</typeparam>
            <param name="key">The key used to store the data in the cache provider.</param>
            <param name="data">The data to be cached in the provider.</param>
            <param name="settings">The <see cref="T:CodeSmith.Data.Caching.CacheSettings"/> to be used when storing in the provider.</param>
            <returns>
            An instance of T that will be either the existing value for the key if the key is already in the cache,
            or the new value if the key was not in the cache.
            </returns>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheProvider.GetOrSet``1(System.String,System.Func{System.String,``0})">
            <summary>
            Saves a key/value pair to the cache if the key does not already exist.
            </summary>
            <typeparam name="T">The type for data being retrieved from cache,</typeparam>
            <param name="key">The key used to store the data in the cache provider.</param>
            <param name="valueFactory">The function used to generate a value for the key.</param>
            <returns>
            An instance of T that will be either the existing value for the key if the key is already in the cache,
            or the new value if the key was not in the cache.
            </returns>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheProvider.GetOrSet``1(System.String,System.String,System.Func{System.String,``0})">
            <summary>
            Saves a key/value pair to the cache if the key does not already exist.
            </summary>
            <typeparam name="T">The type for data being retrieved from cache,</typeparam>
            <param name="key">The key used to store the data in the cache provider.</param>
            <param name="group">The name of the cache group.</param>
            <param name="valueFactory">The function used to generate a value for the key.</param>
            <returns>
            An instance of T that will be either the existing value for the key if the key is already in the cache,
            or the new value if the key was not in the cache.
            </returns>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheProvider.GetOrSet``1(System.String,System.Func{System.String,``0},CodeSmith.Data.Caching.CacheSettings)">
            <summary>
            Saves a key/value pair to the cache if the key does not already exist.
            </summary>
            <typeparam name="T">The type for data being retrieved from cache,</typeparam>
            <param name="key">The key used to store the data in the cache provider.</param>
            <param name="valueFactory">The function used to generate a value for the key.</param>
            <param name="settings">The <see cref="T:CodeSmith.Data.Caching.CacheSettings"/> to be used when storing in the provider.</param>
            <returns>
            An instance of T that will be either the existing value for the key if the key is already in the cache,
            or the new value if the key was not in the cache.
            </returns>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheProvider.Exists(System.String)">
            <summary>
            Checks to see if the specified key exists.
            </summary>
            <param name="key">The key used to store the data in the cache provider.</param>
            <returns>True if the item exists.</returns>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheProvider.Exists(System.String,System.String)">
            <summary>
            Checks to see if the specified key exists.
            </summary>
            <param name="key">The key used to store the data in the cache provider.</param>
            <param name="group">The name of the cache group.</param>
            <returns>True if the item exists.</returns>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheProvider.GetGroupVersion">
            <summary>
            Gets the default group's current version from the cache provider.
            </summary>
            <returns>The group version to append to a key.</returns>
            <remarks>
            The group version is used to combine with the key to aid in expiring keys based on group.
            </remarks>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheProvider.GetGroupVersion(System.String)">
            <summary>
            Gets the group version from the cache provider.
            </summary>
            <param name="group">The group name.</param>
            <returns>The value of the group name to append to a key.</returns>
            <remarks>
            The group version is used to combine with the key to aid in expiring keys based on group.
            </remarks>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheProvider.GetGroupKey(System.String)">
            <summary>
            Gets the combined key based on the specified key and default group name.
            </summary>
            <param name="key">The key to be combined.</param>
            <returns>The combined key based on the specified key and group name.</returns>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheProvider.GetGroupKey(System.String,System.String)">
            <summary>
            Gets the combined key based on the specified key and group name.
            </summary>
            <param name="key">The key to be combined.</param>
            <param name="group">Name of the group.</param>
            <returns>
            The combined key based on the specified key and group name.
            </returns>
        </member>
        <member name="T:CodeSmith.Data.Caching.CacheProviderCollection">
            <summary>
            A collection for <see cref="T:CodeSmith.Data.Caching.CacheProvider"/>.
            </summary>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheProviderCollection.Add(System.Configuration.Provider.ProviderBase)">
            <summary>
            Adds a provider to the collection.
            </summary>
            <param name="provider">The provider to be added.</param>
            <exception cref="T:System.NotSupportedException">
            The collection is read-only.
            </exception>
            <exception cref="T:System.ArgumentNullException">
            	<paramref name="provider"/> is null.
            </exception>
            <exception cref="T:System.ArgumentException">
            The <see cref="P:System.Configuration.Provider.ProviderBase.Name"/> of <paramref name="provider"/> is null.
            - or -
            The length of the <see cref="P:System.Configuration.Provider.ProviderBase.Name"/> of <paramref name="provider"/> is less than 1.
            </exception>
            <PermissionSet>
            	<IPermission class="System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Flags="UnmanagedCode, ControlEvidence"/>
            </PermissionSet>
        </member>
        <member name="T:CodeSmith.Data.Caching.HttpCacheProvider">
            <summary>
            The default cache provider using System.Web.Cache to as the cache store.
            </summary>
        </member>
        <member name="M:CodeSmith.Data.Caching.HttpCacheProvider.Set``1(System.String,``0,CodeSmith.Data.Caching.CacheSettings)">
            <summary>
            Saves the specified key to the cache provider.
            </summary>
            <typeparam name="T">The type for data being saved,</typeparam>
            <param name="key">The key used to store the data in the cache provider.</param>
            <param name="data">The data to be cached in the provider.</param>
            <param name="settings">The <see cref="T:CodeSmith.Data.Caching.CacheSettings"/> to be used when storing in the provider.</param>
        </member>
        <member name="M:CodeSmith.Data.Caching.HttpCacheProvider.Remove(System.String,System.String)">
            <summary>
            Removes the specified key from the cache provider.
            </summary>
            <param name="key">The key used to store the data in the cache provider.</param>
            <param name="group">The cache group.</param>
        </member>
        <member name="M:CodeSmith.Data.Caching.HttpCacheProvider.Clear">
            <summary>
            Invalidates all cache items.
            </summary>
        </member>
        <member name="M:CodeSmith.Data.Caching.HttpCacheProvider.Get(System.String,System.String)">
            <summary>
            Gets the data cached for specified key.
            </summary>
            <param name="key">The key used to store the data in the cache provider.</param>
            <param name="group">The cache group.</param>
            <returns>
            An instance of T if the item exists in the cache, otherwise <see langword="null"/>.
            </returns>
        </member>
        <member name="M:CodeSmith.Data.Caching.StaticCacheProvider.Clear">
            <summary>
            Invalidates all cache items.
            </summary>
        </member>
        <member name="T:CodeSmith.Data.Collections.ConcurrentDictionary`2">
            <summary>
            Represents a thread-safe collection of keys and values. 
            </summary> 
            <typeparam name="TKey">The type of the keys in the dictionary.</typeparam>
            <typeparam name="TValue">The type of the values in the dictionary.</typeparam> 
            <remarks>
            All public and protected members of <see cref="T:CodeSmith.Data.Collections.ConcurrentDictionary`2"/> are thread-safe and may be used
            concurrently from multiple threads.
            </remarks> 
        </member>
        <member name="M:CodeSmith.Data.Collections.ConcurrentDictionary`2.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Collections.ConcurrentDictionary`2"/> 
            class that is empty, has the default concurrency level, has the default initial capacity, and
            uses the default comparer for the key type. 
            </summary> 
        </member>
        <member name="M:CodeSmith.Data.Collections.ConcurrentDictionary`2.#ctor(System.Int32,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Collections.ConcurrentDictionary`2"/>
            class that is empty, has the specified concurrency level and capacity, and uses the default 
            comparer for the key type.
            </summary> 
            <param name="concurrencyLevel">The estimated number of threads that will update the 
            <see cref="T:CodeSmith.Data.Collections.ConcurrentDictionary`2"/> concurrently.</param>
            <param name="capacity">The initial number of elements that the <see cref="T:CodeSmith.Data.Collections.ConcurrentDictionary`2"/>
            can contain.</param>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="concurrencyLevel"/> is
            less than 1.</exception> 
            <exception cref="T:System.ArgumentOutOfRangeException"> <paramref name="capacity"/> is less than
            0.</exception> 
        </member>
        <member name="M:CodeSmith.Data.Collections.ConcurrentDictionary`2.#ctor(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{`0,`1}})">
            <summary> 
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Collections.ConcurrentDictionary`2"/>
            class that contains elements copied from the specified <see cref="T:System.Collections.IEnumerable{KeyValuePair{TKey,TValue}}"/>, has the default concurrency
            level, has the default initial capacity, and uses the default comparer for the key type. 
            </summary>
            <param name="collection">The <see cref="T:System.Collections.IEnumerable{KeyValuePair{TKey,TValue}}"/> whose elements are copied to 
            the new
            <see cref="T:CodeSmith.Data.Collections.ConcurrentDictionary`2"/>.</param> 
            <exception cref="T:System.ArgumentNullException"><paramref name="collection"/> is a null reference
            (Nothing in Visual Basic).</exception>
            <exception cref="T:System.ArgumentException"><paramref name="collection"/> contains one or more
            duplicate keys.</exception> 
        </member>
        <member name="M:CodeSmith.Data.Collections.ConcurrentDictionary`2.#ctor(System.Collections.Generic.IEqualityComparer{`0})">
            <summary> 
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Collections.ConcurrentDictionary`2"/>
            class that is empty, has the specified concurrency level and capacity, and uses the specified 
            <see cref="T:System.Collections.Generic.IEqualityComparer{TKey}"/>.
            </summary>
            <param name="comparer">The <see cref="T:System.Collections.Generic.IEqualityComparer{TKey}"/>
            implementation to use when comparing keys.</param> 
            <exception cref="T:System.ArgumentNullException"><paramref name="comparer"/> is a null reference
            (Nothing in Visual Basic).</exception> 
        </member>
        <member name="M:CodeSmith.Data.Collections.ConcurrentDictionary`2.#ctor(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{`0,`1}},System.Collections.Generic.IEqualityComparer{`0})">
            <summary> 
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Collections.ConcurrentDictionary`2"/>
            class that contains elements copied from the specified <see cref="T:System.Collections.IEnumerable"/>, has the default concurrency level, has the default
            initial capacity, and uses the specified 
            <see cref="T:System.Collections.Generic.IEqualityComparer{TKey}"/>.
            </summary> 
            <param name="collection">The <see cref="T:System.Collections.IEnumerable{KeyValuePair{TKey,TValue}}"/> whose elements are copied to
            the new 
            <see cref="T:CodeSmith.Data.Collections.ConcurrentDictionary`2"/>.</param>
            <param name="comparer">The <see cref="T:System.Collections.Generic.IEqualityComparer{TKey}"/>
            implementation to use when comparing keys.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="collection"/> is a null reference 
            (Nothing in Visual Basic). -or-
            <paramref name="comparer"/> is a null reference (Nothing in Visual Basic). 
            </exception> 
        </member>
        <member name="M:CodeSmith.Data.Collections.ConcurrentDictionary`2.#ctor(System.Int32,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{`0,`1}},System.Collections.Generic.IEqualityComparer{`0})">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Collections.ConcurrentDictionary`2"/>
            class that contains elements copied from the specified <see cref="T:System.Collections.IEnumerable"/>, 
            has the specified concurrency level, has the specified initial capacity, and uses the specified
            <see cref="T:System.Collections.Generic.IEqualityComparer{TKey}"/>. 
            </summary> 
            <param name="concurrencyLevel">The estimated number of threads that will update the
            <see cref="T:CodeSmith.Data.Collections.ConcurrentDictionary`2"/> concurrently.</param> 
            <param name="collection">The <see cref="T:System.Collections.IEnumerable{KeyValuePair{TKey,TValue}}"/> whose elements are copied to the new
            <see cref="T:CodeSmith.Data.Collections.ConcurrentDictionary`2"/>.</param>
            <param name="comparer">The <see cref="T:System.Collections.Generic.IEqualityComparer{TKey}"/> implementation to use
            when comparing keys.</param> 
            <exception cref="T:System.ArgumentNullException">
            <paramref name="collection"/> is a null reference (Nothing in Visual Basic). 
            -or- 
            <paramref name="comparer"/> is a null reference (Nothing in Visual Basic).
            </exception> 
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="concurrencyLevel"/> is less than 1.
            </exception>
            <exception cref="T:System.ArgumentException"><paramref name="collection"/> contains one or more duplicate keys.</exception> 
        </member>
        <member name="M:CodeSmith.Data.Collections.ConcurrentDictionary`2.#ctor(System.Int32,System.Int32,System.Collections.Generic.IEqualityComparer{`0})">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Collections.ConcurrentDictionary`2"/>
            class that is empty, has the specified concurrency level, has the specified initial capacity, and 
            uses the specified <see cref="T:System.Collections.Generic.IEqualityComparer{TKey}"/>.
            </summary> 
            <param name="concurrencyLevel">The estimated number of threads that will update the 
            <see cref="T:CodeSmith.Data.Collections.ConcurrentDictionary`2"/> concurrently.</param>
            <param name="capacity">The initial number of elements that the <see cref="T:CodeSmith.Data.Collections.ConcurrentDictionary`2"/>
            can contain.</param>
            <param name="comparer">The <see cref="T:System.Collections.Generic.IEqualityComparer{TKey}"/>
            implementation to use when comparing keys.</param> 
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="concurrencyLevel"/> is less than 1. -or- 
            <paramref name="capacity"/> is less than 0. 
            </exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="comparer"/> is a null reference 
            (Nothing in Visual Basic).</exception>
        </member>
        <member name="M:CodeSmith.Data.Collections.ConcurrentDictionary`2.TryAdd(`0,`1)">
            <summary> 
            Attempts to add the specified key and value to the <see cref="T:CodeSmith.Data.Collections.ConcurrentDictionary`2"/>.
            </summary> 
            <param name="key">The key of the element to add.</param>
            <param name="value">The value of the element to add. The value can be a null reference (Nothing
            in Visual Basic) for reference types.</param>
            <returns>true if the key/value pair was added to the <see cref="T:CodeSmith.Data.Collections.ConcurrentDictionary`2"/>
            successfully; otherwise, false.</returns> 
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is null reference 
            (Nothing in Visual Basic).</exception>
            <exception cref="T:System.OverflowException">The <see cref="T:CodeSmith.Data.Collections.ConcurrentDictionary`2"/> 
            contains too many elements.</exception>
        </member>
        <member name="M:CodeSmith.Data.Collections.ConcurrentDictionary`2.ContainsKey(`0)">
            <summary> 
            Determines whether the <see cref="T:CodeSmith.Data.Collections.ConcurrentDictionary`2"/> contains the specified
            key.
            </summary>
            <param name="key">The key to locate in the <see cref="T:CodeSmith.Data.Collections.ConcurrentDictionary`2"/>.</param>
            <returns>true if the <see cref="T:CodeSmith.Data.Collections.ConcurrentDictionary`2"/> contains an element with 
            the specified key; otherwise, false.</returns> 
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is a null reference
            (Nothing in Visual Basic).</exception> 
        </member>
        <member name="M:CodeSmith.Data.Collections.ConcurrentDictionary`2.TryRemove(`0,`1@)">
            <summary> 
            Attempts to remove and return the the value with the specified key from the
            <see cref="T:CodeSmith.Data.Collections.ConcurrentDictionary`2"/>.
            </summary>
            <param name="key">The key of the element to remove and return.</param> 
            <param name="value">When this method returns, <paramref name="value"/> contains the object removed from the
            <see cref="T:CodeSmith.Data.Collections.ConcurrentDictionary`2"/> or the default value of <typeparamref name="TValue"/> 
            if the operation failed.</param>
            <returns>true if an object was removed successfully; otherwise, false.</returns> 
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is a null reference
            (Nothing in Visual Basic).</exception>
        </member>
        <member name="M:CodeSmith.Data.Collections.ConcurrentDictionary`2.TryRemoveInternal(`0,`1@,System.Boolean,`1)">
            <summary>
            Removes the specified key from the dictionary if it exists and returns its associated value.
            If matchValue flag is set, the key will be removed only if is associated with a particular
            value. 
            </summary>
            <param name="key">The key to search for and remove if it exists.</param> 
            <param name="value">The variable into which the removed value, if found, is stored.</param> 
            <param name="matchValue">Whether removal of the key is conditional on its value.</param>
            <param name="oldValue">The conditional value to compare against if <paramref name="matchValue"/> is true</param> 
            <returns></returns>
        </member>
        <member name="M:CodeSmith.Data.Collections.ConcurrentDictionary`2.TryGetValue(`0,`1@)">
            <summary>
            Attempts to get the value associated with the specified key from the <see cref="T:CodeSmith.Data.Collections.ConcurrentDictionary`2"/>. 
            </summary>
            <param name="key">The key of the value to get.</param> 
            <param name="value">When this method returns, <paramref name="value"/> contains the object from
            the
            <see cref="T:CodeSmith.Data.Collections.ConcurrentDictionary`2"/> with the spedified key or the default value of
            <typeparamref name="TValue"/>, if the operation failed.</param> 
            <returns>true if the key was found in the <see cref="T:CodeSmith.Data.Collections.ConcurrentDictionary`2"/>;
            otherwise, false.</returns> 
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is a null reference 
            (Nothing in Visual Basic).</exception>
        </member>
        <member name="M:CodeSmith.Data.Collections.ConcurrentDictionary`2.TryUpdate(`0,`1,`1)">
            <summary>
            Compares the existing value for the specified key with a specified value, and if they’re equal,
            updates the key with a third value. 
            </summary>
            <param name="key">The key whose value is compared with <paramref name="comparisonValue"/> and 
            possibly replaced.</param> 
            <param name="newValue">The value that replaces the value of the element with <paramref
            name="key"/> if the comparison results in equality.</param> 
            <param name="comparisonValue">The value that is compared to the value of the element with
            <paramref name="key"/>.</param>
            <returns>true if the value with <paramref name="key"/> was equal to <paramref
            name="comparisonValue"/> and replaced with <paramref name="newValue"/>; otherwise, 
            false.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is a null 
            reference.</exception> 
        </member>
        <member name="M:CodeSmith.Data.Collections.ConcurrentDictionary`2.Clear">
            <summary> 
            Removes all keys and values from the <see cref="T:CodeSmith.Data.Collections.ConcurrentDictionary`2"/>.
            </summary> 
        </member>
        <member name="M:CodeSmith.Data.Collections.ConcurrentDictionary`2.System#Collections#Generic#ICollection{System#Collections#Generic#KeyValuePair{TKey@TValue}}#CopyTo(System.Collections.Generic.KeyValuePair{`0,`1}[],System.Int32)">
            <summary>
            Copies the elements of the <see cref="T:System.Collections.Generic.ICollection"/> to an array of 
            type <see cref="T:System.Collections.Generic.KeyValuePair{TKey,TValue}"/>, starting at the
            specified array index.
            </summary>
            <param name="array">The one-dimensional array of type <see 
            cref="T:System.Collections.Generic.KeyValuePair{TKey,TValue}"/>
            that is the destination of the <see 
            cref="T:System.Collections.Generic.KeyValuePair{TKey,TValue}"/> elements copied from the <see 
            cref="T:System.Collections.ICollection"/>. The array must have zero-based indexing.</param>
            <param name="index">The zero-based index in <paramref name="array"/> at which copying 
            begins.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="array"/> is a null reference
            (Nothing in Visual Basic).</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than 
            0.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="index"/> is equal to or greater than 
            the length of the <paramref name="array"/>. -or- The number of elements in the source <see 
            cref="T:System.Collections.ICollection"/>
            is greater than the available space from <paramref name="index"/> to the end of the destination 
            <paramref name="array"/>.</exception>
        </member>
        <member name="M:CodeSmith.Data.Collections.ConcurrentDictionary`2.ToArray">
            <summary>
            Copies the key and value pairs stored in the <see cref="T:CodeSmith.Data.Collections.ConcurrentDictionary`2"/> to a 
            new array. 
            </summary>
            <returns>A new array containing a snapshot of key and value pairs copied from the <see cref="T:CodeSmith.Data.Collections.ConcurrentDictionary`2"/>.</returns>
        </member>
        <member name="M:CodeSmith.Data.Collections.ConcurrentDictionary`2.CopyToPairs(System.Collections.Generic.KeyValuePair{`0,`1}[],System.Int32)">
             <summary>
             Copy dictionary contents to an array - shared implementation between ToArray and CopyTo.
            
             Important: the caller must hold all locks in m_locks before calling CopyToPairs. 
             </summary>
        </member>
        <member name="M:CodeSmith.Data.Collections.ConcurrentDictionary`2.CopyToEntries(System.Collections.DictionaryEntry[],System.Int32)">
             <summary>
             Copy dictionary contents to an array - shared implementation between ToArray and CopyTo.
            
             Important: the caller must hold all locks in m_locks before calling CopyToEntries. 
             </summary>
        </member>
        <member name="M:CodeSmith.Data.Collections.ConcurrentDictionary`2.CopyToObjects(System.Object[],System.Int32)">
             <summary>
             Copy dictionary contents to an array - shared implementation between ToArray and CopyTo.
            
             Important: the caller must hold all locks in m_locks before calling CopyToObjects. 
             </summary>
        </member>
        <member name="M:CodeSmith.Data.Collections.ConcurrentDictionary`2.GetEnumerator">
            <summary>Returns an enumerator that iterates through the <see cref="T:CodeSmith.Data.Collections.ConcurrentDictionary`2"/>.</summary>
            <returns>An enumerator for the <see cref="T:CodeSmith.Data.Collections.ConcurrentDictionary`2"/>.</returns>
            <remarks> 
            The enumerator returned from the dictionary is safe to use concurrently with
            reads and writes to the dictionary, however it does not represent a moment-in-time snapshot 
            of the dictionary.  The contents exposed through the enumerator may contain modifications 
            made to the dictionary after <see cref="M:CodeSmith.Data.Collections.ConcurrentDictionary`2.GetEnumerator"/> was called.
            </remarks> 
        </member>
        <member name="M:CodeSmith.Data.Collections.ConcurrentDictionary`2.TryAddInternal(`0,`1,System.Boolean,System.Boolean,`1@)">
            <summary>
            Shared internal implementation for inserts and updates.
            If key exists, we always return false; and if updateIfExists == true we force update with value;
            If key doesn't exist, we always add value and return true; 
            </summary>
        </member>
        <member name="M:CodeSmith.Data.Collections.ConcurrentDictionary`2.GetOrAdd(`0,System.Func{`0,`1})">
            <summary>
            Adds a key/value pair to the <see cref="T:CodeSmith.Data.Collections.ConcurrentDictionary`2"/> 
            if the key does not already exist. 
            </summary>
            <param name="key">The key of the element to add.</param> 
            <param name="valueFactory">The function used to generate a value for the key</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is a null reference
            (Nothing in Visual Basic).</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="valueFactory"/> is a null reference 
            (Nothing in Visual Basic).</exception>
            <exception cref="T:System.OverflowException">The dictionary contains too many 
            elements.</exception> 
            <returns>The value for the key.  This will be either the existing value for the key if the
            key is already in the dictionary, or the new value for the key as returned by valueFactory 
            if the key was not in the dictionary.</returns>
        </member>
        <member name="M:CodeSmith.Data.Collections.ConcurrentDictionary`2.GetOrAdd(`0,`1)">
            <summary> 
            Adds a key/value pair to the <see cref="T:CodeSmith.Data.Collections.ConcurrentDictionary`2"/>
            if the key does not already exist. 
            </summary>
            <param name="key">The key of the element to add.</param>
            <param name="value">the value to be added, if the key does not already exist</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is a null reference 
            (Nothing in Visual Basic).</exception>
            <exception cref="T:System.OverflowException">The dictionary contains too many 
            elements.</exception> 
            <returns>The value for the key.  This will be either the existing value for the key if the
            key is already in the dictionary, or the new value if the key was not in the dictionary.</returns> 
        </member>
        <member name="M:CodeSmith.Data.Collections.ConcurrentDictionary`2.AddOrUpdate(`0,System.Func{`0,`1},System.Func{`0,`1,`1})">
            <summary>
            Adds a key/value pair to the <see cref="T:CodeSmith.Data.Collections.ConcurrentDictionary`2"/> if the key does not already
            exist, or updates a key/value pair in the <see cref="T:CodeSmith.Data.Collections.ConcurrentDictionary`2"/> if the key
            already exists. 
            </summary>
            <param name="key">The key to be added or whose value should be updated</param> 
            <param name="addValueFactory">The function used to generate a value for an absent key</param> 
            <param name="updateValueFactory">The function used to generate a new value for an existing key
            based on the key's existing value</param> 
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is a null reference
            (Nothing in Visual Basic).</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="addValueFactory"/> is a null reference
            (Nothing in Visual Basic).</exception> 
            <exception cref="T:System.ArgumentNullException"><paramref name="updateValueFactory"/> is a null reference
            (Nothing in Visual Basic).</exception> 
            <exception cref="T:System.OverflowException">The dictionary contains too many 
            elements.</exception>
            <returns>The new value for the key.  This will be either be the result of addValueFactory (if the key was 
            absent) or the result of updateValueFactory (if the key was present).</returns>
        </member>
        <member name="M:CodeSmith.Data.Collections.ConcurrentDictionary`2.AddOrUpdate(`0,`1,System.Func{`0,`1,`1})">
            <summary>
            Adds a key/value pair to the <see cref="T:CodeSmith.Data.Collections.ConcurrentDictionary`2"/> if the key does not already 
            exist, or updates a key/value pair in the <see cref="T:CodeSmith.Data.Collections.ConcurrentDictionary`2"/> if the key 
            already exists.
            </summary> 
            <param name="key">The key to be added or whose value should be updated</param>
            <param name="addValue">The value to be added for an absent key</param>
            <param name="updateValueFactory">The function used to generate a new value for an existing key based on
            the key's existing value</param> 
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is a null reference
            (Nothing in Visual Basic).</exception> 
            <exception cref="T:System.ArgumentNullException"><paramref name="updateValueFactory"/> is a null reference 
            (Nothing in Visual Basic).</exception>
            <exception cref="T:System.OverflowException">The dictionary contains too many 
            elements.</exception>
            <returns>The new value for the key.  This will be either be the result of addValueFactory (if the key was
            absent) or the result of updateValueFactory (if the key was present).</returns>
        </member>
        <member name="M:CodeSmith.Data.Collections.ConcurrentDictionary`2.System#Collections#Generic#IDictionary{TKey@TValue}#Add(`0,`1)">
            <summary>
            Adds the specified key and value to the <see cref="T:System.Collections.Generic.IDictionary{TKey,TValue}"/>. 
            </summary>
            <param name="key">The object to use as the key of the element to add.</param> 
            <param name="value">The object to use as the value of the element to add.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is a null reference
            (Nothing in Visual Basic).</exception>
            <exception cref="T:System.OverflowException">The dictionary contains too many 
            elements.</exception>
            <exception cref="T:System.ArgumentException"> 
            An element with the same key already exists in the <see cref="T:CodeSmith.Data.Collections.ConcurrentDictionary`2"/>.</exception>
        </member>
        <member name="M:CodeSmith.Data.Collections.ConcurrentDictionary`2.System#Collections#Generic#IDictionary{TKey@TValue}#Remove(`0)">
            <summary>
            Removes the element with the specified key from the <see 
            cref="T:System.Collections.Generic.IDictionary{TKey,TValue}"/>.
            </summary>
            <param name="key">The key of the element to remove.</param>
            <returns>true if the element is successfully remove; otherwise false. This method also returns 
            false if
            <paramref name="key"/> was not found in the original <see 
            cref="T:System.Collections.Generic.IDictionary{TKey,TValue}"/>. 
            </returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is a null reference 
            (Nothing in Visual Basic).</exception>
        </member>
        <member name="M:CodeSmith.Data.Collections.ConcurrentDictionary`2.System#Collections#Generic#ICollection{System#Collections#Generic#KeyValuePair{TKey@TValue}}#Add(System.Collections.Generic.KeyValuePair{`0,`1})">
            <summary> 
            Adds the specified value to the <see cref="T:System.Collections.Generic.ICollection{TValue}"/>
            with the specified key. 
            </summary>
            <param name="keyValuePair">The <see cref="T:System.Collections.Generic.KeyValuePair{TKey,TValue}"/>
            structure representing the key and value to add to the <see
            cref="T:System.Collections.Generic.Dictionary{TKey,TValue}"/>.</param> 
            <exception cref="T:System.ArgumentNullException">The <paramref name="keyValuePair"/> of <paramref
            name="keyValuePair"/> is null.</exception> 
            <exception cref="T:System.OverflowException">The <see 
            cref="T:System.Collections.Generic.Dictionary{TKey,TValue}"/>
            contains too many elements.</exception> 
            <exception cref="T:System.ArgumentException">An element with the same key already exists in the
            <see cref="T:System.Collections.Generic.Dictionary{TKey,TValue}"/></exception>
        </member>
        <member name="M:CodeSmith.Data.Collections.ConcurrentDictionary`2.System#Collections#Generic#ICollection{System#Collections#Generic#KeyValuePair{TKey@TValue}}#Contains(System.Collections.Generic.KeyValuePair{`0,`1})">
            <summary>
            Determines whether the <see cref="T:System.Collections.Generic.ICollection{TKey,TValue}"/> 
            contains a specific key and value.
            </summary>
            <param name="keyValuePair">The <see cref="T:System.Collections.Generic.KeyValuePair{TKey,TValue}"/>
            structure to locate in the <see 
            cref="T:System.Collections.Generic.ICollection{TValue}"/>.</param>
            <returns>true if the <paramref name="keyValuePair"/> is found in the <see 
            cref="T:System.Collections.Generic.ICollection{TKey,TValue}"/>; otherwise, false.</returns> 
        </member>
        <member name="M:CodeSmith.Data.Collections.ConcurrentDictionary`2.System#Collections#Generic#ICollection{System#Collections#Generic#KeyValuePair{TKey@TValue}}#Remove(System.Collections.Generic.KeyValuePair{`0,`1})">
            <summary>
            Removes a key and value from the dictionary. 
            </summary>
            <param name="keyValuePair">The <see 
            cref="T:System.Collections.Generic.KeyValuePair{TKey,TValue}"/> 
            structure representing the key and value to remove from the <see
            cref="T:System.Collections.Generic.Dictionary{TKey,TValue}"/>.</param> 
            <returns>true if the key and value represented by <paramref name="keyValuePair"/> is successfully
            found and removed; otherwise, false.</returns>
            <exception cref="T:System.ArgumentNullException">The Key property of <paramref
            name="keyValuePair"/> is a null reference (Nothing in Visual Basic).</exception> 
        </member>
        <member name="M:CodeSmith.Data.Collections.ConcurrentDictionary`2.System#Collections#IEnumerable#GetEnumerator">
            <summary>Returns an enumerator that iterates through the <see cref="T:CodeSmith.Data.Collections.ConcurrentDictionary`2"/>.</summary> 
            <returns>An enumerator for the <see cref="T:CodeSmith.Data.Collections.ConcurrentDictionary`2"/>.</returns>
            <remarks>
            The enumerator returned from the dictionary is safe to use concurrently with
            reads and writes to the dictionary, however it does not represent a moment-in-time snapshot 
            of the dictionary.  The contents exposed through the enumerator may contain modifications
            made to the dictionary after <see cref="M:CodeSmith.Data.Collections.ConcurrentDictionary`2.GetEnumerator"/> was called. 
            </remarks> 
        </member>
        <member name="M:CodeSmith.Data.Collections.ConcurrentDictionary`2.System#Collections#IDictionary#Add(System.Object,System.Object)">
            <summary>
            Adds the specified key and value to the dictionary. 
            </summary>
            <param name="key">The object to use as the key.</param>
            <param name="value">The object to use as the value.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is a null reference 
            (Nothing in Visual Basic).</exception>
            <exception cref="T:System.OverflowException">The dictionary contains too many 
            elements.</exception> 
            <exception cref="T:System.ArgumentException">
            <paramref name="key"/> is of a type that is not assignable to the key type <typeparamref 
            name="TKey"/> of the <see cref="T:System.Collections.Generic.Dictionary{TKey,TValue}"/>. -or-
            <paramref name="value"/> is of a type that is not assignable to <typeparamref name="TValue"/>,
            the type of values in the <see cref="T:System.Collections.Generic.Dictionary{TKey,TValue}"/>.
            -or- A value with the same key already exists in the <see 
            cref="T:System.Collections.Generic.Dictionary{TKey,TValue}"/>.
            </exception> 
        </member>
        <member name="M:CodeSmith.Data.Collections.ConcurrentDictionary`2.System#Collections#IDictionary#Contains(System.Object)">
            <summary> 
            Gets whether the <see cref="T:System.Collections.Generic.IDictionary{TKey,TValue}"/> contains an
            element with the specified key. 
            </summary>
            <param name="key">The key to locate in the <see
            cref="T:System.Collections.Generic.IDictionary{TKey,TValue}"/>.</param>
            <returns>true if the <see cref="T:System.Collections.Generic.IDictionary{TKey,TValue}"/> contains 
            an element with the specified key; otherwise, false.</returns>
            <exception cref="T:System.ArgumentNullException"> <paramref name="key"/> is a null reference 
            (Nothing in Visual Basic).</exception> 
        </member>
        <member name="M:CodeSmith.Data.Collections.ConcurrentDictionary`2.System#Collections#IDictionary#GetEnumerator">
            <summary>Provides an <see cref="T:System.Collections.Generics.IDictionaryEnumerator"/> for the 
            <see cref="T:System.Collections.Generic.IDictionary{TKey,TValue}"/>.</summary> 
            <returns>An <see cref="T:System.Collections.Generics.IDictionaryEnumerator"/> for the <see
            cref="T:System.Collections.Generic.IDictionary{TKey,TValue}"/>.</returns> 
        </member>
        <member name="M:CodeSmith.Data.Collections.ConcurrentDictionary`2.System#Collections#IDictionary#Remove(System.Object)">
            <summary> 
            Removes the element with the specified key from the <see
            cref="T:System.Collections.IDictionary"/>. 
            </summary>
            <param name="key">The key of the element to remove.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is a null reference
            (Nothing in Visual Basic).</exception> 
        </member>
        <member name="M:CodeSmith.Data.Collections.ConcurrentDictionary`2.System#Collections#ICollection#CopyTo(System.Array,System.Int32)">
            <summary>
            Copies the elements of the <see cref="T:System.Collections.ICollection"/> to an array, starting
            at the specified array index. 
            </summary>
            <param name="array">The one-dimensional array that is the destination of the elements copied from 
            the <see cref="T:System.Collections.ICollection"/>. The array must have zero-based 
            indexing.</param>
            <param name="index">The zero-based index in <paramref name="array"/> at which copying 
            begins.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="array"/> is a null reference
            (Nothing in Visual Basic).</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than 
            0.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="index"/> is equal to or greater than 
            the length of the <paramref name="array"/>. -or- The number of elements in the source <see 
            cref="T:System.Collections.ICollection"/>
            is greater than the available space from <paramref name="index"/> to the end of the destination 
            <paramref name="array"/>.</exception>
        </member>
        <member name="M:CodeSmith.Data.Collections.ConcurrentDictionary`2.GrowTable(CodeSmith.Data.Collections.ConcurrentDictionary{`0,`1}.Node[])">
            <summary> 
            Replaces the internal table with a larger one. To prevent multiple threads from resizing the 
            table as a result of ----s, the table of buckets that was deemed too small is passed in as
            an argument to GrowTable(). GrowTable() obtains a lock, and then checks whether the bucket 
            table has been replaced in the meantime or not.
            </summary>
            <param name="buckets">Reference to the bucket table that was deemed too small.</param>
        </member>
        <member name="M:CodeSmith.Data.Collections.ConcurrentDictionary`2.GetBucketAndLockNo(System.Int32,System.Int32@,System.Int32@,System.Int32)">
            <summary>
            Computes the bucket and lock number for a particular key. 
            </summary> 
        </member>
        <member name="M:CodeSmith.Data.Collections.ConcurrentDictionary`2.AcquireAllLocks(System.Int32@)">
            <summary> 
            Acquires all locks for this hash table, and increments locksAcquired by the number
            of locks that were successfully acquired. The locks are acquired in an increasing
            order.
            </summary> 
        </member>
        <member name="M:CodeSmith.Data.Collections.ConcurrentDictionary`2.AcquireLocks(System.Int32,System.Int32,System.Int32@)">
            <summary> 
            Acquires a contiguous range of locks for this hash table, and increments locksAcquired
            by the number of locks that were successfully acquired. The locks are acquired in an
            increasing order.
            </summary> 
        </member>
        <member name="M:CodeSmith.Data.Collections.ConcurrentDictionary`2.ReleaseLocks(System.Int32,System.Int32)">
            <summary> 
            Releases a contiguous range of locks.
            </summary> 
        </member>
        <member name="M:CodeSmith.Data.Collections.ConcurrentDictionary`2.GetKeys">
            <summary>
            Gets a collection containing the keys in the dictionary. 
            </summary>
        </member>
        <member name="M:CodeSmith.Data.Collections.ConcurrentDictionary`2.GetValues">
            <summary>
            Gets a collection containing the values in the dictionary.
            </summary>
        </member>
        <member name="M:CodeSmith.Data.Collections.ConcurrentDictionary`2.Assert(System.Boolean)">
            <summary>
            A helper method for asserts. 
            </summary>
        </member>
        <member name="M:CodeSmith.Data.Collections.ConcurrentDictionary`2.GetResource(System.String)">
            <summary>
            A helper function to obtain the string for a particular resource key.
            </summary>
            <param name="key"></param> 
            <returns></returns>
        </member>
        <member name="M:CodeSmith.Data.Collections.ConcurrentDictionary`2.OnSerializing(System.Runtime.Serialization.StreamingContext)">
            <summary> 
            Get the data array to be serialized
            </summary> 
        </member>
        <member name="M:CodeSmith.Data.Collections.ConcurrentDictionary`2.OnDeserialized(System.Runtime.Serialization.StreamingContext)">
            <summary> 
            Construct the dictionary from a previously seiralized one
            </summary> 
        </member>
        <member name="P:CodeSmith.Data.Collections.ConcurrentDictionary`2.Item(`0)">
            <summary>
            Gets or sets the value associated with the specified key. 
            </summary> 
            <param name="key">The key of the value to get or set.</param>
            <value>The value associated with the specified key. If the specified key is not found, a get 
            operation throws a
            <see cref="T:Sytem.Collections.Generic.KeyNotFoundException"/>, and a set operation creates a new
            element with the specified key.</value>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is a null reference 
            (Nothing in Visual Basic).</exception>
            <exception cref="T:System.Collections.Generic.KeyNotFoundException">The property is retrieved and 
            <paramref name="key"/> 
            does not exist in the collection.</exception>
        </member>
        <member name="P:CodeSmith.Data.Collections.ConcurrentDictionary`2.Count">
            <summary>
            Gets the number of key/value pairs contained in the <see cref="T:CodeSmith.Data.Collections.ConcurrentDictionary`2"/>.
            </summary> 
            <exception cref="T:System.OverflowException">The dictionary contains too many
            elements.</exception> 
            <value>The number of key/value paris contained in the <see cref="T:CodeSmith.Data.Collections.ConcurrentDictionary`2"/>.</value>
            <remarks>Count has snapshot semantics and represents the number of items in the <see cref="T:CodeSmith.Data.Collections.ConcurrentDictionary`2"/>
            at the moment when Count was accessed.</remarks>
        </member>
        <member name="P:CodeSmith.Data.Collections.ConcurrentDictionary`2.IsEmpty">
            <summary> 
            Gets a value that indicates whether the <see cref="T:CodeSmith.Data.Collections.ConcurrentDictionary`2"/> is empty. 
            </summary>
            <value>true if the <see cref="T:CodeSmith.Data.Collections.ConcurrentDictionary`2"/> is empty; otherwise, 
            false.</value>
        </member>
        <member name="P:CodeSmith.Data.Collections.ConcurrentDictionary`2.Keys">
            <summary>
            Gets a collection containing the keys in the <see 
            cref="T:System.Collections.Generic.Dictionary{TKey,TValue}"/>.
            </summary>
            <value>An <see cref="T:System.Collections.Generic.ICollection{TKey}"/> containing the keys in the
            <see cref="T:System.Collections.Generic.Dictionary{TKey,TValue}"/>.</value> 
        </member>
        <member name="P:CodeSmith.Data.Collections.ConcurrentDictionary`2.Values">
            <summary>
            Gets a collection containing the values in the <see
            cref="T:System.Collections.Generic.Dictionary{TKey,TValue}"/>.
            </summary> 
            <value>An <see cref="T:System.Collections.Generic.ICollection{TValue}"/> containing the values in
            the 
            <see cref="T:System.Collections.Generic.Dictionary{TKey,TValue}"/>.</value> 
        </member>
        <member name="P:CodeSmith.Data.Collections.ConcurrentDictionary`2.System#Collections#Generic#ICollection{System#Collections#Generic#KeyValuePair{TKey@TValue}}#IsReadOnly">
            <summary> 
            Gets a value indicating whether the dictionary is read-only.
            </summary>
            <value>true if the <see cref="T:System.Collections.Generic.ICollection{TKey,TValue}"/> is
            read-only; otherwise, false. For <see 
            cref="T:System.Collections.Generic.Dictionary{TKey,TValue}"/>, this property always returns
            false.</value> 
        </member>
        <member name="P:CodeSmith.Data.Collections.ConcurrentDictionary`2.System#Collections#IDictionary#IsFixedSize">
            <summary> 
            Gets a value indicating whether the <see 
            cref="T:System.Collections.Generic.IDictionary{TKey,TValue}"/> has a fixed size.
            </summary> 
            <value>true if the <see cref="T:System.Collections.Generic.IDictionary{TKey,TValue}"/> has a
            fixed size; otherwise, false. For <see
            cref="T:System.Collections.Generic.ConcurrentDictionary{TKey,TValue}"/>, this property always
            returns false.</value> 
        </member>
        <member name="P:CodeSmith.Data.Collections.ConcurrentDictionary`2.System#Collections#IDictionary#IsReadOnly">
            <summary>
            Gets a value indicating whether the <see
            cref="T:System.Collections.Generic.IDictionary{TKey,TValue}"/> is read-only.
            </summary> 
            <value>true if the <see cref="T:System.Collections.Generic.IDictionary{TKey,TValue}"/> is
            read-only; otherwise, false. For <see 
            cref="T:System.Collections.Generic.ConcurrentDictionary{TKey,TValue}"/>, this property always 
            returns false.</value>
        </member>
        <member name="P:CodeSmith.Data.Collections.ConcurrentDictionary`2.System#Collections#IDictionary#Keys">
            <summary>
            Gets an <see cref="T:System.Collections.ICollection"/> containing the keys of the <see 
            cref="T:System.Collections.Generic.IDictionary{TKey,TValue}"/>. 
            </summary>
            <value>An <see cref="T:System.Collections.ICollection"/> containing the keys of the <see 
            cref="T:System.Collections.Generic.IDictionary{TKey,TValue}"/>.</value>
        </member>
        <member name="P:CodeSmith.Data.Collections.ConcurrentDictionary`2.System#Collections#IDictionary#Values">
            <summary> 
            Gets an <see cref="T:System.Collections.ICollection"/> containing the values in the <see
            cref="T:System.Collections.IDictionary"/>. 
            </summary>
            <value>An <see cref="T:System.Collections.ICollection"/> containing the values in the <see
            cref="T:System.Collections.IDictionary"/>.</value>
        </member>
        <member name="P:CodeSmith.Data.Collections.ConcurrentDictionary`2.System#Collections#IDictionary#Item(System.Object)">
            <summary> 
            Gets or sets the value associated with the specified key.
            </summary>
            <param name="key">The key of the value to get or set.</param>
            <value>The value associated with the specified key, or a null reference (Nothing in Visual Basic) 
            if <paramref name="key"/> is not in the dictionary or <paramref name="key"/> is of a type that is
            not assignable to the key type <typeparamref name="TKey"/> of the <see 
            cref="T:System.Collections.Generic.ConcurrentDictionary{TKey,TValue}"/>.</value> 
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is a null reference
            (Nothing in Visual Basic).</exception> 
            <exception cref="T:System.ArgumentException">
            A value is being assigned, and <paramref name="key"/> is of a type that is not assignable to the
            key type <typeparamref name="TKey"/> of the <see
            cref="T:System.Collections.Generic.ConcurrentDictionary{TKey,TValue}"/>. -or- A value is being 
            assigned, and <paramref name="key"/> is of a type that is not assignable to the value type
            <typeparamref name="TValue"/> of the <see 
            cref="T:System.Collections.Generic.ConcurrentDictionary{TKey,TValue}"/> 
            </exception>
        </member>
        <member name="P:CodeSmith.Data.Collections.ConcurrentDictionary`2.System#Collections#ICollection#IsSynchronized">
            <summary>
            Gets a value indicating whether access to the <see cref="T:System.Collections.ICollection"/> is 
            synchronized with the SyncRoot. 
            </summary>
            <value>true if access to the <see cref="T:System.Collections.ICollection"/> is synchronized 
            (thread safe); otherwise, false. For <see
            cref="T:System.Collections.Concurrent.ConcurrentDictionary{TKey,TValue}"/>, this property always
            returns false.</value>
        </member>
        <member name="P:CodeSmith.Data.Collections.ConcurrentDictionary`2.System#Collections#ICollection#SyncRoot">
            <summary> 
            Gets an object that can be used to synchronize access to the <see
            cref="T:System.Collections.ICollection"/>. This property is not supported.
            </summary>
            <exception cref="T:System.NotSupportedException">The SyncRoot property is not supported.</exception> 
        </member>
        <member name="P:CodeSmith.Data.Collections.ConcurrentDictionary`2.DefaultConcurrencyLevel">
            <summary> 
            The number of concurrent writes for which to optimize by default.
            </summary>
        </member>
        <member name="T:CodeSmith.Data.Collections.ConcurrentDictionary`2.Node">
            <summary>
            A node in a singly-linked list representing a particular hash table bucket. 
            </summary>
        </member>
        <member name="T:CodeSmith.Data.Collections.ConcurrentDictionary`2.DictionaryEnumerator">
            <summary>
            A private class to represent enumeration over the dictionary that implements the 
            IDictionaryEnumerator interface. 
            </summary>
        </member>
        <member name="M:CodeSmith.Data.Linq.FutureCacheCountExtensions.FutureCacheCount``1(System.Linq.IQueryable{``0})">
            <summary>
            Provides for defering the execution of the <paramref name="source"/> query to a batch of future queries.
            </summary>
            <typeparam name="T">The type of the elements of <paramref name="source"/>.</typeparam>
            <param name="source">An <see cref="T:System.Linq.IQueryable`1"/> to add to the batch of future queries.</param>
            <returns>
            An instance of <see cref="!:FutureCount"/> that contains the result of the query.
            </returns>
            <seealso cref="T:CodeSmith.Data.Linq.FutureCount"/>
        </member>
        <member name="M:CodeSmith.Data.Linq.FutureCacheCountExtensions.FutureCacheCount``1(System.Linq.IQueryable{``0},System.String)">
            <summary>
            Provides for defering the execution of the <paramref name="source"/> query to a batch of future queries.
            </summary>
            <typeparam name="T">The type of the elements of <paramref name="source"/>.</typeparam>
            <param name="source">An <see cref="T:System.Linq.IQueryable`1"/> to add to the batch of future queries.</param>
            <param name="profileName">Name of the cache profile to use.</param>
            <returns>
            An instance of <see cref="!:FutureCount"/> that contains the result of the query.
            </returns>
            <seealso cref="T:CodeSmith.Data.Linq.FutureCount"/>
        </member>
        <member name="M:CodeSmith.Data.Linq.FutureCacheCountExtensions.FutureCacheCount``1(System.Linq.IQueryable{``0},System.Int32)">
            <summary>
            Provides for defering the execution of the <paramref name="source"/> query to a batch of future queries.
            </summary>
            <typeparam name="T">The type of the elements of <paramref name="source"/>.</typeparam>
            <param name="source">An <see cref="T:System.Linq.IQueryable`1"/> to add to the batch of future queries.</param>
            <param name="duration">The amount of time, in seconds, that a cache entry is to remain in the output cache.</param>
            <returns>
            An instance of <see cref="!:FutureCount"/> that contains the result of the query.
            </returns>
            <seealso cref="T:CodeSmith.Data.Linq.FutureCount"/>
        </member>
        <member name="M:CodeSmith.Data.Linq.FutureCacheCountExtensions.FutureCacheCount``1(System.Linq.IQueryable{``0},CodeSmith.Data.Caching.CacheSettings)">
            <summary>
            Provides for defering the execution of the <paramref name="source"/> query to a batch of future queries.
            </summary>
            <typeparam name="T">The type of the elements of <paramref name="source"/>.</typeparam>
            <param name="source">An <see cref="T:System.Linq.IQueryable`1"/> to add to the batch of future queries.</param>
            <param name="cacheSettings">The cache settings.</param>
            <returns>
            An instance of <see cref="!:FutureCount"/> that contains the result of the query.
            </returns>
            <seealso cref="T:CodeSmith.Data.Linq.FutureCount"/>
        </member>
        <member name="T:CodeSmith.Data.Linq.PagingExtensions">
            <summary>
            Paging extension methods.
            </summary>
        </member>
        <member name="M:CodeSmith.Data.Linq.PagingExtensions.Paginate``1(System.Linq.IQueryable{``0},System.Int32,System.Int32)">
            <summary>
            Paginates the specified query.
            </summary>
            <typeparam name="T">The type of the items in the list.</typeparam>
            <param name="query">The query.</param>
            <param name="page">The zero based index of the page.</param>
            <param name="pageSize">The size of the page.</param>
            <returns>An <see cref="T:System.Linq.IQueryable`1"/> with Skip and Take set.</returns>
        </member>
        <member name="M:CodeSmith.Data.Linq.PagingExtensions.ToPagedList``1(System.Linq.IQueryable{``0},System.Int32,System.Int32)">
            <summary>
            Converts the source to a <see cref="T:CodeSmith.Data.Linq.PagedList`1"/>.
            </summary>
            <typeparam name="T">The type of the items in the list.</typeparam>
            <param name="source">The <see cref="T:System.Linq.IQueryable`1"/> source.</param>
            <param name="pageIndex">The zero based index of the page.</param>
            <param name="pageSize">The size of the page.</param>
            <returns>A new instance of <see cref="T:CodeSmith.Data.Linq.PagedList`1"/>.</returns>
        </member>
        <member name="M:CodeSmith.Data.Linq.PagingExtensions.ToPagedList``1(System.Linq.IQueryable{``0},System.Int32,System.Int32,System.Int32)">
            <summary>
            Converts the source to a <see cref="T:CodeSmith.Data.Linq.PagedList`1"/>.
            </summary>
            <typeparam name="T">The type of the items in the list.</typeparam>
            <param name="source">The <see cref="T:System.Linq.IQueryable`1"/> source.</param>
            <param name="pageIndex">The zero based index of the page.</param>
            <param name="pageSize">The size of the page.</param>
            <param name="totalCount">The total count.</param>
            <returns>A new instance of <see cref="T:CodeSmith.Data.Linq.PagedList`1"/>.</returns>
        </member>
        <member name="M:CodeSmith.Data.Linq.PagingExtensions.ToPagedList``1(System.Collections.Generic.IEnumerable{``0},System.Int32,System.Int32)">
            <summary>
            Converts the source to a <see cref="T:CodeSmith.Data.Linq.PagedList`1"/>.
            </summary>
            <typeparam name="T">The type of the items in the list.</typeparam>
            <param name="source">The <see cref="T:System.Collections.Generic.IEnumerable`1"/> source.</param>
            <param name="pageIndex">The zero based index of the page.</param>
            <param name="pageSize">The size of the page.</param>
            <returns>A new instance of <see cref="T:CodeSmith.Data.Linq.PagedList`1"/>.</returns>
        </member>
        <member name="M:CodeSmith.Data.Linq.PagingExtensions.ToPagedList``1(System.Collections.Generic.IEnumerable{``0},System.Int32,System.Int32,System.Int32)">
            <summary>
            Converts the source to a <see cref="T:CodeSmith.Data.Linq.PagedList`1"/>.
            </summary>
            <typeparam name="T">The type of the items in the list.</typeparam>
            <param name="source">The <see cref="T:System.Collections.Generic.IEnumerable`1"/> source.</param>
            <param name="pageIndex">The zero based index of the page.</param>
            <param name="pageSize">The size of the page.</param>
            <param name="totalCount">The total count.</param>
            <returns>A new instance of <see cref="T:CodeSmith.Data.Linq.PagedList`1"/>.</returns>
        </member>
        <member name="T:CodeSmith.Data.IEntityKey">
            <summary>Interface for an entity key.</summary>
        </member>
        <member name="T:CodeSmith.Data.IEntityKey`1">
            <summary>Interface for an entity key.</summary>
            <typeparam name="TKey">The type of the key.</typeparam>
        </member>
        <member name="P:CodeSmith.Data.IEntityKey`1.Key">
            <summary>Gets the entity key.</summary>
        </member>
        <member name="T:CodeSmith.Data.IEntityKey`2">
            <summary>Interface for a two part entity key.</summary>
            <typeparam name="TKey0">The type of the first key.</typeparam>
            <typeparam name="TKey1">The type of the second key.</typeparam>
        </member>
        <member name="P:CodeSmith.Data.IEntityKey`2.Key1">
            <summary>Gets the second key.</summary>
        </member>
        <member name="T:CodeSmith.Data.IEntityKey`3">
            <summary>Interface for a three part entity key.</summary>
            <typeparam name="TKey0">The type of the first key.</typeparam>
            <typeparam name="TKey1">The type of the second key.</typeparam>
            <typeparam name="TKey2">The type of the key2.</typeparam>
        </member>
        <member name="P:CodeSmith.Data.IEntityKey`3.Key2">
            <summary>Gets the third key.</summary>
        </member>
        <member name="T:CodeSmith.Data.IEntityKey`4">
            <summary>Interface for a four part entity key.</summary>
            <typeparam name="TKey0">The type of the first key.</typeparam>
            <typeparam name="TKey1">The type of the second key.</typeparam>
            <typeparam name="TKey2">The type of the third key.</typeparam>
            <typeparam name="TKey3">The type of the fourth key.</typeparam>
        </member>
        <member name="P:CodeSmith.Data.IEntityKey`4.Key3">
            <summary>Gets the fourth key.</summary>
        </member>
        <member name="T:CodeSmith.Data.EntityKey`1">
            <summary>Class representing an entity key.</summary>
            <typeparam name="TKey">The type of the entity key.</typeparam>
        </member>
        <member name="M:CodeSmith.Data.EntityKey`1.#ctor(`0)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.EntityKey`1"/> class.
            </summary>
            <param name="key">The entity key.</param>
        </member>
        <member name="P:CodeSmith.Data.EntityKey`1.Key">
            <summary>Gets the entity key.</summary>
        </member>
        <member name="T:CodeSmith.Data.EntityKey`2">
            <summary>Class representing a two part entity key.</summary>
            <typeparam name="TKey0">The type of the first key.</typeparam>
            <typeparam name="TKey1">The type of the second key.</typeparam>
        </member>
        <member name="M:CodeSmith.Data.EntityKey`2.#ctor(`0,`1)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.EntityKey`2"/> class.
            </summary>
            <param name="key0">The first key value.</param>
            <param name="key1">The second key value.</param>
        </member>
        <member name="P:CodeSmith.Data.EntityKey`2.Key1">
            <summary>Gets the second key.</summary>
        </member>
        <member name="T:CodeSmith.Data.EntityKey`3">
            <summary>Class representing a three part entity key.</summary>
            <typeparam name="TKey0">The type of the first key.</typeparam>
            <typeparam name="TKey1">The type of the second key.</typeparam>
            <typeparam name="TKey2">The type of the third key.</typeparam>
        </member>
        <member name="M:CodeSmith.Data.EntityKey`3.#ctor(`0,`1,`2)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.EntityKey`3"/> class.
            </summary>
            <param name="key0">The first key value.</param>
            <param name="key1">The second key value.</param>
            <param name="key2">The third key value.</param>
        </member>
        <member name="P:CodeSmith.Data.EntityKey`3.Key2">
            <summary>Gets the third key.</summary>
        </member>
        <member name="T:CodeSmith.Data.EntityKey`4">
            <summary>Class representing a four part entity key.</summary>
            <typeparam name="TKey0">The type of the first key.</typeparam>
            <typeparam name="TKey1">The type of the second key.</typeparam>
            <typeparam name="TKey2">The type of the third key.</typeparam>
            <typeparam name="TKey3">The type of the fourth key.</typeparam>
        </member>
        <member name="M:CodeSmith.Data.EntityKey`4.#ctor(`0,`1,`2,`3)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.EntityKey`4"/> class.
            </summary>
            <param name="key0">The first key value.</param>
            <param name="key1">The second key value.</param>
            <param name="key2">The third key value.</param>
            <param name="key3">The fourth key value.</param>
        </member>
        <member name="P:CodeSmith.Data.EntityKey`4.Key3">
            <summary>Gets the fourth key.</summary>
        </member>
        <member name="T:CodeSmith.Data.DataManagerBase`1">
            <summary>
            The base class for the data manager.
            </summary>
            <typeparam name="TContext">The type of <see cref="T:System.Data.Linq.DataContext"/>.</typeparam>
        </member>
        <member name="T:CodeSmith.Data.IDataManager`1">
            <summary>
            An interface defining a data manager.
            </summary>
            <typeparam name="TContext">The type of the <see cref="T:System.Data.Linq.DataContext"/>.</typeparam>
        </member>
        <member name="T:CodeSmith.Data.IDataManager">
            <summary>
            An interface defining a data manager.
            </summary>
        </member>
        <member name="P:CodeSmith.Data.IDataManager`1.Context">
            <summary>
            Gets the <see cref="T:System.Data.Linq.DataContext"/> for this manager.
            </summary>
            <value>The <see cref="T:System.Data.Linq.DataContext"/>.</value>
        </member>
        <member name="M:CodeSmith.Data.DataManagerBase`1.#ctor(`0)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.DataManagerBase`1"/> class.
            </summary>
            <param name="context">The context.</param>
        </member>
        <member name="P:CodeSmith.Data.DataManagerBase`1.Context">
            <summary>
            Gets the managers <see cref="T:System.Data.Linq.DataContext"/>.
            </summary>
            <value>The current <see cref="T:System.Data.Linq.DataContext"/>.</value>
        </member>
        <member name="P:CodeSmith.Data.DataManagerBase`1.Rules">
            <summary>
            Gets the current rules for the entities.
            </summary>
            <value>The entity rules.</value>
        </member>
        <member name="T:CodeSmith.Data.EntityManagerBase`2">
            <summary>
            A base class for entity managers.
            </summary>
            <typeparam name="TManager">The type of the manager.</typeparam>
            <typeparam name="TEntity">The type of the entity.</typeparam>
        </member>
        <member name="T:CodeSmith.Data.IEntityManager`2">
            <summary>
            The entity manager interface.
            </summary>
            <typeparam name="TManager">The type of the manager.</typeparam>
            <typeparam name="TEntity">The type of the entity.</typeparam>
            <seealso cref="T:CodeSmith.Data.IDataManager"/>
            <seealso cref="T:CodeSmith.Data.IEntityKey"/>
        </member>
        <member name="M:CodeSmith.Data.IEntityManager`2.GetByKey(CodeSmith.Data.IEntityKey)">
            <summary>
            Gets an entity by the primary key.
            </summary>
            <param name="key">The key for the entity.</param>
            <returns>
            An instance of the entity or null if not found.
            </returns>
        </member>
        <member name="P:CodeSmith.Data.IEntityManager`2.Manager">
            <summary>
            Gets the manager.
            </summary>
            <value>The manager.</value>
        </member>
        <member name="M:CodeSmith.Data.EntityManagerBase`2.#ctor(`0)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.EntityManagerBase`2"/> class.
            </summary>
            <param name="manager">The manager.</param>
        </member>
        <member name="M:CodeSmith.Data.EntityManagerBase`2.GetByKey(CodeSmith.Data.IEntityKey)">
            <summary>
            Gets an entity by the primary key.
            </summary>
            <param name="key">The key for the entity.</param>
            <returns>
            An instance of the entity or null if not found.
            </returns>
            <remarks>
            This method provides a common retrieval of an entity.
            </remarks>
            <exception cref="T:System.NotImplementedException"></exception>
        </member>
        <member name="M:CodeSmith.Data.EntityManagerBase`2.AddValidationRules">
            <summary>
            Add validation rules.
            </summary>
        </member>
        <member name="P:CodeSmith.Data.EntityManagerBase`2.Manager">
            <summary>
            Gets the manager.
            </summary>
            <value>The manager.</value>
        </member>
        <member name="M:CodeSmith.Data.Linq.ClearCacheExtensions.ClearCache``1(System.Linq.IQueryable{``0})">
            <summary>
            Clears the cache of a given query.
            </summary>
            <typeparam name="T">The type of the data in the data source.</typeparam>
            <param name="query">The query to be cleared.</param>
        </member>
        <member name="M:CodeSmith.Data.Linq.ClearCacheExtensions.ClearCache``1(System.Linq.IQueryable{``0},System.String)">
            <summary>
            Clears the cache of a given query.
            </summary>
            <typeparam name="T">The type of the data in the data source.</typeparam>
            <param name="query">The query to be cleared.</param>
            <param name="group">The name of the cache group.</param>
        </member>
        <member name="M:CodeSmith.Data.Linq.ClearCacheExtensions.ClearCache``1(System.Linq.IQueryable{``0},System.String,System.String)">
            <summary>
            Clears the cache of a given query.
            </summary>
            <typeparam name="T">The type of the data in the data source.</typeparam>
            <param name="query">The query to be cleared.</param>
            <param name="group">The cache group.</param>
            <param name="provider">The name of the cache provider.</param>
        </member>
        <member name="M:CodeSmith.Data.Linq.ClearCacheExtensions.ClearCache``1(System.Linq.IQueryable{``0},CodeSmith.Data.Caching.CacheSettings)">
            <summary>
            Clears the cache of a given query.
            </summary>
            <typeparam name="T">The type of the data in the data source.</typeparam>
            <param name="query">The query to be cleared.</param>
            <param name="settings">Cache settings object.</param>
        </member>
        <member name="M:CodeSmith.Data.Linq.ClearCacheFirstOrDefaultExtensions.ClearCacheFirstOrDefault``1(System.Linq.IQueryable{``0})">
            <summary>
            Clears the cache of a given query.
            </summary>
            <typeparam name="T">The type of the data in the data source.</typeparam>
            <param name="query">The query to be cleared.</param>
        </member>
        <member name="M:CodeSmith.Data.Linq.ClearCacheFirstOrDefaultExtensions.ClearCacheFirstOrDefault``1(System.Linq.IQueryable{``0},System.String)">
            <summary>
            Clears the cache of a given query.
            </summary>
            <typeparam name="T">The type of the data in the data source.</typeparam>
            <param name="query">The query to be cleared.</param>
            <param name="group">The name of the cache group.</param>
        </member>
        <member name="M:CodeSmith.Data.Linq.ClearCacheFirstOrDefaultExtensions.ClearCacheFirstOrDefault``1(System.Linq.IQueryable{``0},System.String,System.String)">
            <summary>
            Clears the cache of a given query.
            </summary>
            <typeparam name="T">The type of the data in the data source.</typeparam>
            <param name="query">The query to be cleared.</param>
            <param name="group">The cache group.</param>
            <param name="provider">The name of the cache provider.</param>
        </member>
        <member name="M:CodeSmith.Data.Linq.FromCacheExtensions.FromCache``1(System.Linq.IQueryable{``0})">
            <summary>
            Returns the result of the query; if possible from the cache, otherwise
            the query is materialized and the result cached before being returned.
            </summary>
            <typeparam name="T">The type of the data in the data source.</typeparam>
            <param name="query">The query to be materialized.</param>
            <returns>The result of the query.</returns>
        </member>
        <member name="M:CodeSmith.Data.Linq.FromCacheExtensions.FromCache(System.Linq.IQueryable)">
            <summary>
            Returns the result of the query; if possible from the cache, otherwise
            the query is materialized and the result cached before being returned.
            </summary>
            <param name="query">The query to be materialized.</param>
            <returns>The result of the query.</returns>
        </member>
        <member name="M:CodeSmith.Data.Linq.FromCacheExtensions.FromCache``1(System.Linq.IQueryable{``0},System.Int32)">
            <summary>
            Returns the result of the query; if possible from the cache, otherwise
            the query is materialized and the result cached before being returned.
            </summary>
            <typeparam name="T">The type of the data in the data source.</typeparam>
            <param name="query">The query to be materialized.</param>
            <param name="duration">The amount of time, in seconds, that a cache entry is to remain in the output cache.</param>
            <returns>The result of the query.</returns>
        </member>
        <member name="M:CodeSmith.Data.Linq.FromCacheExtensions.FromCache(System.Linq.IQueryable,System.Int32)">
            <summary>
            Returns the result of the query; if possible from the cache, otherwise
            the query is materialized and the result cached before being returned.
            </summary>
            <param name="query">The query to be materialized.</param>
            <param name="duration">The amount of time, in seconds, that a cache entry is to remain in the output cache.</param>
            <returns>The result of the query.</returns>
        </member>
        <member name="M:CodeSmith.Data.Linq.FromCacheExtensions.FromCache``1(System.Linq.IQueryable{``0},System.String)">
            <summary>
            Returns the result of the query; if possible from the cache, otherwise
            the query is materialized and the result cached before being returned.
            </summary>
            <typeparam name="T">The type of the data in the data source.</typeparam>
            <param name="query">The query to be materialized.</param>
            <param name="profileName">Name of the cache profile to use.</param>
            <returns>The result of the query.</returns>
        </member>
        <member name="M:CodeSmith.Data.Linq.FromCacheExtensions.FromCache(System.Linq.IQueryable,System.String)">
            <summary>
            Returns the result of the query; if possible from the cache, otherwise
            the query is materialized and the result cached before being returned.
            </summary>
            <param name="query">The query to be materialized.</param>
            <param name="profileName">Name of the cache profile to use.</param>
            <returns>The result of the query.</returns>
        </member>
        <member name="M:CodeSmith.Data.Linq.FromCacheExtensions.FromCache``1(System.Linq.IQueryable{``0},CodeSmith.Data.Caching.CacheSettings)">
            <summary>
            Returns the result of the query; if possible from the cache, otherwise
            the query is materialized and the result cached before being returned.
            </summary>
            <typeparam name="T">The type of the data in the data source.</typeparam>
            <param name="query">The query to be materialized.</param>
            <param name="settings">Cache settings object.</param>
            <returns>The result of the query.</returns>
        </member>
        <member name="M:CodeSmith.Data.Linq.FromCacheExtensions.FromCache(System.Linq.IQueryable,CodeSmith.Data.Caching.CacheSettings)">
            <summary>
            Returns the result of the query; if possible from the cache, otherwise
            the query is materialized and the result cached before being returned.
            </summary>
            <param name="query">The query to be materialized.</param>
            <param name="settings">Cache settings object.</param>
            <returns>The result of the query.</returns>
        </member>
        <member name="M:CodeSmith.Data.Linq.FromCacheFirstOrDefaultExtensions.FromCacheFirstOrDefault``1(System.Linq.IQueryable{``0})">
            <summary>
            Returns the result of the query; if possible from the cache, otherwise
            the query is materialized and the result cached before being returned.
            The cache entry has a one minute sliding expiration with normal priority.
            Queries, caches, and returns only the first entity.
            </summary>
            <typeparam name="T">The type of the data in the data source.</typeparam>
            <param name="query">The query to be materialized.</param>
            <returns>The first or default result of the query.</returns>
        </member>
        <member name="M:CodeSmith.Data.Linq.FromCacheFirstOrDefaultExtensions.FromCacheFirstOrDefault(System.Linq.IQueryable)">
            <summary>
            Returns the result of the query; if possible from the cache, otherwise
            the query is materialized and the result cached before being returned.
            The cache entry has a one minute sliding expiration with normal priority.
            Queries, caches, and returns only the first entity.
            </summary>
            <param name="query">The query to be materialized.</param>
            <returns>The first or default result of the query.</returns>
        </member>
        <member name="M:CodeSmith.Data.Linq.FromCacheFirstOrDefaultExtensions.FromCacheFirstOrDefault``1(System.Linq.IQueryable{``0},System.Int32)">
            <summary>
            Returns the result of the query; if possible from the cache, otherwise
            the query is materialized and the result cached before being returned.
            Queries, caches, and returns only the first entity.
            </summary>
            <typeparam name="T">The type of the data in the data source.</typeparam>
            <param name="query">The query to be materialized.</param>
            <param name="duration">The amount of time, in seconds, that a cache entry is to remain in the output cache.</param>
            <returns>The first or default result of the query.</returns>
        </member>
        <member name="M:CodeSmith.Data.Linq.FromCacheFirstOrDefaultExtensions.FromCacheFirstOrDefault(System.Linq.IQueryable,System.Int32)">
            <summary>
            Returns the result of the query; if possible from the cache, otherwise
            the query is materialized and the result cached before being returned.
            Queries, caches, and returns only the first entity.
            </summary>
            <param name="query">The query to be materialized.</param>
            <param name="duration">The amount of time, in seconds, that a cache entry is to remain in the output cache.</param>
            <returns>The first or default result of the query.</returns>
        </member>
        <member name="M:CodeSmith.Data.Linq.FromCacheFirstOrDefaultExtensions.FromCacheFirstOrDefault``1(System.Linq.IQueryable{``0},System.String)">
            <summary>
            Returns the result of the query; if possible from the cache, otherwise
            the query is materialized and the result cached before being returned.
            Queries, caches, and returns only the first entity.
            </summary>
            <typeparam name="T">The type of the data in the data source.</typeparam>
            <param name="query">The query to be materialized.</param>
            <param name="profileName">Name of the cache profile to use.</param>
            <returns>The first or default result of the query.</returns>
        </member>
        <member name="M:CodeSmith.Data.Linq.FromCacheFirstOrDefaultExtensions.FromCacheFirstOrDefault(System.Linq.IQueryable,System.String)">
            <summary>
            Returns the result of the query; if possible from the cache, otherwise
            the query is materialized and the result cached before being returned.
            Queries, caches, and returns only the first entity.
            </summary>
            <param name="query">The query to be materialized.</param>
            <param name="profileName">Name of the cache profile to use.</param>
            <returns>The first or default result of the query.</returns>
        </member>
        <member name="M:CodeSmith.Data.Linq.FromCacheFirstOrDefaultExtensions.FromCacheFirstOrDefault``1(System.Linq.IQueryable{``0},CodeSmith.Data.Caching.CacheSettings)">
            <summary>
            Returns the result of the query; if possible from the cache, otherwise
            the query is materialized and the result cached before being returned.
            Queries, caches, and returns only the first entity.
            </summary>
            <typeparam name="T">The type of the data in the data source.</typeparam>
            <param name="query">The query to be materialized.</param>
            <param name="settings">Cache settings object.</param>
            <returns>The first or default result of the query.</returns>
        </member>
        <member name="M:CodeSmith.Data.Linq.FromCacheFirstOrDefaultExtensions.FromCacheFirstOrDefault(System.Linq.IQueryable,CodeSmith.Data.Caching.CacheSettings)">
            <summary>
            Returns the result of the query; if possible from the cache, otherwise
            the query is materialized and the result cached before being returned.
            Queries, caches, and returns only the first entity.
            </summary>
            <param name="query">The query to be materialized.</param>
            <param name="settings">Cache settings object.</param>
            <returns>The first or default result of the query.</returns>
        </member>
        <member name="M:CodeSmith.Data.Linq.FutureCacheExtensions.FutureCache``1(System.Linq.IQueryable{``0})">
            <summary>
            Provides for defering the execution of the <paramref name="source"/> query to a batch of future queries.
            </summary>
            <typeparam name="T">The type of the elements of <paramref name="source"/>.</typeparam>
            <param name="source">An <see cref="T:System.Linq.IQueryable`1"/> to add to the batch of future queries.</param>
            <returns>
            An <see cref="T:System.Collections.Generic.IEnumerable`1"/> that contains elements from the input sequence.
            </returns>
            <seealso cref="T:CodeSmith.Data.Linq.FutureQuery`1"/>
        </member>
        <member name="M:CodeSmith.Data.Linq.FutureCacheExtensions.FutureCache``1(System.Linq.IQueryable{``0},System.String)">
            <summary>
            Provides for defering the execution of the <paramref name="source"/> query to a batch of future queries.
            </summary>
            <typeparam name="T">The type of the elements of <paramref name="source"/>.</typeparam>
            <param name="source">An <see cref="T:System.Linq.IQueryable`1"/> to add to the batch of future queries.</param>
            <param name="profileName">Name of the cache profile to use.</param>
            <returns>
            An <see cref="T:System.Collections.Generic.IEnumerable`1"/> that contains elements from the input sequence.
            </returns>
            <seealso cref="T:CodeSmith.Data.Linq.FutureQuery`1"/>
        </member>
        <member name="M:CodeSmith.Data.Linq.FutureCacheExtensions.FutureCache``1(System.Linq.IQueryable{``0},System.Int32)">
            <summary>
            Provides for defering the execution of the <paramref name="source"/> query to a batch of future queries.
            </summary>
            <typeparam name="T">The type of the elements of <paramref name="source"/>.</typeparam>
            <param name="source">An <see cref="T:System.Linq.IQueryable`1"/> to add to the batch of future queries.</param>
            <param name="duration">The amount of time, in seconds, that a cache entry is to remain in the output cache.</param>
            <returns>
            An <see cref="T:System.Collections.Generic.IEnumerable`1"/> that contains elements from the input sequence.
            </returns>
            <seealso cref="T:CodeSmith.Data.Linq.FutureQuery`1"/>
        </member>
        <member name="M:CodeSmith.Data.Linq.FutureCacheExtensions.FutureCache``1(System.Linq.IQueryable{``0},CodeSmith.Data.Caching.CacheSettings)">
            <summary>
            Provides for defering the execution of the <paramref name="source"/> query to a batch of future queries.
            </summary>
            <typeparam name="T">The type of the elements of <paramref name="source"/>.</typeparam>
            <param name="source">An <see cref="T:System.Linq.IQueryable`1"/> to add to the batch of future queries.</param>
            <param name="cacheSettings">The cache settings.</param>
            <returns>
            An <see cref="T:System.Collections.Generic.IEnumerable`1"/> that contains elements from the input sequence.
            </returns>
            <seealso cref="T:CodeSmith.Data.Linq.FutureQuery`1"/>
        </member>
        <member name="M:CodeSmith.Data.Linq.FutureCacheFirstOrDefaultExtensions.FutureCacheFirstOrDefault``1(System.Linq.IQueryable{``0})">
            <summary>
            Provides for defering the execution of the <paramref name="source"/> query to a batch of future queries.
            </summary>
            <typeparam name="T">The type of the elements of <paramref name="source"/>.</typeparam>
            <param name="source">An <see cref="T:System.Linq.IQueryable`1"/> to add to the batch of future queries.</param>
            <returns>
            An instance of <see cref="T:CodeSmith.Data.Linq.FutureValue`1"/> that contains the result of the query.
            </returns>
            <seealso cref="T:CodeSmith.Data.Linq.FutureValue`1"/>
        </member>
        <member name="M:CodeSmith.Data.Linq.FutureCacheFirstOrDefaultExtensions.FutureCacheFirstOrDefault``1(System.Linq.IQueryable{``0},System.String)">
            <summary>
            Provides for defering the execution of the <paramref name="source"/> query to a batch of future queries.
            </summary>
            <typeparam name="T">The type of the elements of <paramref name="source"/>.</typeparam>
            <param name="source">An <see cref="T:System.Linq.IQueryable`1"/> to add to the batch of future queries.</param>
            <param name="profileName">Name of the cache profile to use.</param>
            <returns>
            An instance of <see cref="T:CodeSmith.Data.Linq.FutureValue`1"/> that contains the result of the query.
            </returns>
            <seealso cref="T:CodeSmith.Data.Linq.FutureValue`1"/>
        </member>
        <member name="M:CodeSmith.Data.Linq.FutureCacheFirstOrDefaultExtensions.FutureCacheFirstOrDefault``1(System.Linq.IQueryable{``0},System.Int32)">
            <summary>
            Provides for defering the execution of the <paramref name="source"/> query to a batch of future queries.
            </summary>
            <typeparam name="T">The type of the elements of <paramref name="source"/>.</typeparam>
            <param name="source">An <see cref="T:System.Linq.IQueryable`1"/> to add to the batch of future queries.</param>
            <param name="duration">The amount of time, in seconds, that a cache entry is to remain in the output cache.</param>
            <returns>
            An instance of <see cref="T:CodeSmith.Data.Linq.FutureValue`1"/> that contains the result of the query.
            </returns>
            <seealso cref="T:CodeSmith.Data.Linq.FutureValue`1"/>
        </member>
        <member name="M:CodeSmith.Data.Linq.FutureCacheFirstOrDefaultExtensions.FutureCacheFirstOrDefault``1(System.Linq.IQueryable{``0},CodeSmith.Data.Caching.CacheSettings)">
            <summary>
            Provides for defering the execution of the <paramref name="source"/> query to a batch of future queries.
            </summary>
            <typeparam name="T">The type of the elements of <paramref name="source"/>.</typeparam>
            <param name="source">An <see cref="T:System.Linq.IQueryable`1"/> to add to the batch of future queries.</param>
            <param name="cacheSettings">The cache settings.</param>
            <returns>
            An instance of <see cref="T:CodeSmith.Data.Linq.FutureValue`1"/> that contains the result of the query.
            </returns>
            <seealso cref="T:CodeSmith.Data.Linq.FutureValue`1"/>
        </member>
        <member name="T:CodeSmith.Data.Caching.CacheExpirationMode">
            <summary>
            The cache expiration mode.
            </summary>
        </member>
        <member name="F:CodeSmith.Data.Caching.CacheExpirationMode.None">
            <summary>
            The cache item will not expire.
            </summary>
        </member>
        <member name="F:CodeSmith.Data.Caching.CacheExpirationMode.Duration">
            <summary>
            The cache item will expire using the Duration property to calculate
            the absolute expiration from DateTime.UtcNow.
            </summary>
        </member>
        <member name="F:CodeSmith.Data.Caching.CacheExpirationMode.Sliding">
            <summary>
            The cache item will expire using the Duration property as the
            sliding expiration.
            </summary>
        </member>
        <member name="F:CodeSmith.Data.Caching.CacheExpirationMode.Absolute">
            <summary>
            The cache item will expire on the AbsoluteExpiration DateTime.
            </summary>
        </member>
        <member name="T:CodeSmith.Data.Caching.CacheSettings">
            <summary>
            Settings Object for QueryResultCache.FromCache Methods
            </summary>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheSettings.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Caching.CacheSettings"/> class.
            </summary>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheSettings.#ctor(System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Caching.CacheSettings"/> class with the specified duration.
            </summary>
            <param name="duration">The amount of time, in seconds, that a cache entry is to remain in the output cache.</param>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheSettings.#ctor(System.DateTime)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Caching.CacheSettings"/> class with the specified absolute expiration.
            </summary>
            <param name="absoluteExpiration">The absolute DateTime the cache will expire.</param>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheSettings.#ctor(System.TimeSpan)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Caching.CacheSettings"/> class with the specified sliding expiration.
            </summary>
            <param name="slidingExpiration">The sliding expiration.</param>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheSettings.Clone">
            <summary>
            Creates a new object that is a copy of the current instance.
            </summary>
            <returns>
            A new object that is a copy of this instance.
            </returns>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheSettings.System#ICloneable#Clone">
            <summary>
            Creates a new object that is a copy of the current instance.
            </summary>
            <returns>
            A new object that is a copy of this instance.
            </returns>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheSettings.FromDuration(System.Int32)">
            <summary>
            Creates a new CacheSettings object using the duration specified.
            </summary>
            <param name="duration">The duration to store the data in the cache.</param>
            <returns>A new CacheSettings object with the specified duration.</returns>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheSettings.FromAbsolute(System.DateTime)">
            <summary>
            Creates a new CacheSettings object using the duration specified.
            </summary>
            <param name="expiration">The date to expire the data in the cache.</param>
            <returns>A new CacheSettings object with the specified duration.</returns>
        </member>
        <member name="M:CodeSmith.Data.Caching.CacheSettings.FromProfile(System.String)">
            <summary>
            Creates a new CacheSettings object using the named profile.
            </summary>
            <param name="profile">The cache profile name.</param>
            <returns>A new CacheSettings object with settings from the named profile.</returns>
        </member>
        <member name="P:CodeSmith.Data.Caching.CacheSettings.Mode">
            <summary>
            Gets or sets the cache expiration mode.
            </summary>
            <value>The cache expiration mode.</value>
        </member>
        <member name="P:CodeSmith.Data.Caching.CacheSettings.Duration">
            <summary>
            Gets or sets the cache duration.
            </summary>
            <value>The cache duration.</value>
            <remarks>
            <para>
            When Mode is Sliding, Duration is the interval between the time the
            inserted object was last accessed and the time at which that object expires.
            </para>
            <para>
            When Mode is Duration, Duration is used to calculate the absolute expiration
            from DateTime.UtcNow.
            </para>
            </remarks>
        </member>
        <member name="P:CodeSmith.Data.Caching.CacheSettings.AbsoluteExpiration">
            <summary>
            Gets or sets the absolute expiration.
            </summary>
            <value>The absolute expiration.</value>
            <remarks>
            The time at which the inserted object expires and is removed from the cache. To
            avoid possible issues with local time such as changes from standard time to
            daylight saving time, use System.DateTime.UtcNow rather than System.DateTime.Now
            for this parameter value.
            </remarks>
        </member>
        <member name="P:CodeSmith.Data.Caching.CacheSettings.Priority">
            <summary>
            The cost of the object relative to other items stored in the cache, as
            expressed by the System.Web.Caching.CacheItemPriority enumeration. This value is
            used by the cache when it evicts objects; objects with a lower cost are removed
            from the cache before objects with a higher cost.
            </summary>
        </member>
        <member name="P:CodeSmith.Data.Caching.CacheSettings.CacheEmptyResult">
            <summary>
            Used to determine if an empty result should be cached.
            </summary>
        </member>
        <member name="P:CodeSmith.Data.Caching.CacheSettings.CacheDependency">
            <summary>
            The file or cache key dependencies for the item. When any dependency changes, the
            object becomes invalid and is removed from the cache. If there are no
            dependencies, this parameter contains null.
            </summary>
        </member>
        <member name="P:CodeSmith.Data.Caching.CacheSettings.CacheItemRemovedCallback">
            <summary>
            A delegate that, if provided, will be called when an object is removed from the
            cache. You can use this to notify applications when their objects are deleted from
            the cache.
            </summary>
        </member>
        <member name="P:CodeSmith.Data.Caching.CacheSettings.Provider">
            <summary>
            Gets or sets the cache provider name.
            </summary>
            <value>The cache provider name.</value>
        </member>
        <member name="P:CodeSmith.Data.Caching.CacheSettings.Group">
            <summary>
            Gets or sets the cache group name.
            </summary>
            <value>The cache group name.</value>
        </member>
        <member name="T:CodeSmith.Data.Linq.Evaluator">
            <summary>
            Enables the partial evalutation of queries.
            From http://msdn.microsoft.com/en-us/library/bb546158.aspx
            </summary>
        </member>
        <member name="M:CodeSmith.Data.Linq.Evaluator.PartialEval(System.Linq.Expressions.Expression,System.Func{System.Linq.Expressions.Expression,System.Boolean})">
             <summary>
             Performs evaluation and replacement of independent sub-trees
             </summary>
            <param name="expression">The root of the expression tree.</param>
            <param name="fnCanBeEvaluated">A function that decides whether a given expression node can be part of the local function.</param>
             <returns>A new tree with sub-trees evaluated and replaced.</returns>
        </member>
        <member name="M:CodeSmith.Data.Linq.Evaluator.PartialEval(System.Linq.Expressions.Expression)">
             <summary>
             Performs evaluation and replacement of independent sub-trees
             </summary>
            <param name="expression">The root of the expression tree.</param>
             <returns>A new tree with sub-trees evaluated and replaced.</returns>
        </member>
        <member name="T:CodeSmith.Data.Linq.Evaluator.Nominator">
            <summary>
            Performs bottom-up analysis to determine which nodes can possibly
            be part of an evaluated sub-tree.
            </summary>
        </member>
        <member name="T:CodeSmith.Data.Linq.ExpressionVisitor">
            <summary>
            Expression visitor
            (from http://blogs.msdn.com/mattwar/archive/2007/07/31/linq-building-an-iqueryable-provider-part-ii.aspx)
            </summary>
        </member>
        <member name="T:CodeSmith.Data.Linq.Evaluator.SubtreeEvaluator">
            <summary>
            Evaluates and replaces sub-trees when first candidate is reached (top-down)
            </summary>
        </member>
        <member name="T:CodeSmith.Data.Linq.ExpressionVisitor`1">
            <summary>
            This class visits every Parameter expression in an expression tree and calls a delegate
            to optionally replace the parameter.  This is useful where two expression trees need to
            be merged (and they don't share the same ParameterExpressions).
            </summary>
        </member>
        <member name="T:CodeSmith.Data.Linq.FutureException">
            <summary>
            An exception during future query execution.
            </summary>
        </member>
        <member name="M:CodeSmith.Data.Linq.FutureException.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Linq.FutureException"/> class.
            </summary>
        </member>
        <member name="M:CodeSmith.Data.Linq.FutureException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Linq.FutureException"/> class.
            </summary>
            <param name="message">The message.</param>
        </member>
        <member name="M:CodeSmith.Data.Linq.FutureException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Linq.FutureException"/> class.
            </summary>
            <param name="message">The message.</param>
            <param name="innerException">The inner exception.</param>
        </member>
        <member name="M:CodeSmith.Data.Linq.FutureException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Linq.FutureException"/> class.
            </summary>
            <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.</param>
            <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.</param>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="info"/> parameter is null.
            </exception>
            <exception cref="T:System.Runtime.Serialization.SerializationException">
            The class name is null or <see cref="P:System.Exception.HResult"/> is zero (0).
            </exception>
        </member>
        <member name="T:CodeSmith.Data.Linq.IPagedList">
            <summary>
            Interface defining a paged list.
            </summary>
        </member>
        <member name="P:CodeSmith.Data.Linq.IPagedList.HasPreviousPage">
            <summary>
            Gets a value indicating whether this instance has previous page.
            </summary>
            <value>
            	<c>true</c> if this instance has previous page; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:CodeSmith.Data.Linq.IPagedList.HasNextPage">
            <summary>
            Gets a value indicating whether this instance has next page.
            </summary>
            <value>
            	<c>true</c> if this instance has next page; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:CodeSmith.Data.Linq.IPagedList.IsFirstPage">
            <summary>
            Gets a value indicating whether this instance is first page.
            </summary>
            <value>
            	<c>true</c> if this instance is first page; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:CodeSmith.Data.Linq.IPagedList.IsLastPage">
            <summary>
            Gets a value indicating whether this instance is last page.
            </summary>
            <value>
            	<c>true</c> if this instance is last page; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:CodeSmith.Data.Linq.IPagedList.PageCount">
            <summary>
            Gets the total page count.
            </summary>
            <value>The total page count.</value>
        </member>
        <member name="P:CodeSmith.Data.Linq.IPagedList.PageIndex">
            <summary>
            Gets the zero based index of the page.
            </summary>
            <value>The index of the page.</value>
        </member>
        <member name="P:CodeSmith.Data.Linq.IPagedList.PageNumber">
            <summary>
            Gets the page number. Page number is PageIndex + 1.
            </summary>
            <value>The page number.</value>
        </member>
        <member name="P:CodeSmith.Data.Linq.IPagedList.PageSize">
            <summary>
            Gets the size of the page.
            </summary>
            <value>The size of the page.</value>
        </member>
        <member name="P:CodeSmith.Data.Linq.IPagedList.TotalItemCount">
            <summary>
            Gets the total item count.
            </summary>
            <value>The total item count.</value>
        </member>
        <member name="T:CodeSmith.Data.Linq.IPageList`1">
            <summary>
            Interface defining a paged list.
            </summary>
            <typeparam name="T">The type of the items in the list.</typeparam>
        </member>
        <member name="T:CodeSmith.Data.Linq.PagedList`1">
            <summary>
            A paged collection.
            </summary>
            <typeparam name="T">The type of the items in the list.</typeparam>
            <remarks>
            When this collection is created, <see cref="T:System.Linq.IQueryable"/> Skip and Take is
            calculated and called on the source list. Also, if total count 
            is not specified, <see cref="T:System.Linq.IQueryable"/> Count is called.
            </remarks>
        </member>
        <member name="M:CodeSmith.Data.Linq.PagedList`1.#ctor(System.Collections.Generic.IEnumerable{`0},System.Int32,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Linq.PagedList`1"/> class.
            </summary>
            <param name="source">The source list of items.</param>
            <param name="pageIndex">The zero based index of the page.</param>
            <param name="pageSize">Size of the page.</param>
        </member>
        <member name="M:CodeSmith.Data.Linq.PagedList`1.#ctor(System.Collections.Generic.IEnumerable{`0},System.Int32,System.Int32,System.Nullable{System.Int32})">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Linq.PagedList`1"/> class.
            </summary>
            <param name="source">The source list of items.</param>
            <param name="pageIndex">The zero based index of the page.</param>
            <param name="pageSize">Size of the page.</param>
            <param name="totalCount">The total count.</param>
        </member>
        <member name="M:CodeSmith.Data.Linq.PagedList`1.#ctor(System.Linq.IQueryable{`0},System.Int32,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Linq.PagedList`1"/> class.
            </summary>
            <param name="source">The source list of items.</param>
            <param name="pageIndex">The zero based index of the page.</param>
            <param name="pageSize">Size of the page.</param>
        </member>
        <member name="M:CodeSmith.Data.Linq.PagedList`1.#ctor(System.Linq.IQueryable{`0},System.Int32,System.Int32,System.Nullable{System.Int32})">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Linq.PagedList`1"/> class.
            </summary>
            <param name="source">The source list of items.</param>
            <param name="pageIndex">The zero based index of the page.</param>
            <param name="pageSize">Size of the page.</param>
            <param name="totalCount">The total count.</param>
        </member>
        <member name="M:CodeSmith.Data.Linq.PagedList`1.Initialize(System.Linq.IQueryable{`0},System.Int32,System.Int32,System.Nullable{System.Int32})">
            <summary>
            Initializes the specified source.
            </summary>
            <param name="source">The source list of items.</param>
            <param name="pageIndex">The zero based index of the page.</param>
            <param name="pageSize">Size of the page.</param>
            <param name="totalCount">The total item count.</param>
        </member>
        <member name="M:CodeSmith.Data.Linq.PagedList`1.NextPage">
            <summary>
            Gets the next page of data using the original source.
            </summary>
            <returns>
            A new PageList with the current page index incremented. 
            </returns>
            <remarks>
            The source, page size and total will be the same as the current PageList.
            </remarks>
        </member>
        <member name="M:CodeSmith.Data.Linq.PagedList`1.PreviousPage">
            <summary>
            Gets the previous page of data using the original source.
            </summary>
            <returns>
            A new PageList with the current page index decremented. 
            </returns>
            <remarks>
            The source, page size and total will be the same as the current PageList.
            </remarks>
        </member>
        <member name="M:CodeSmith.Data.Linq.PagedList`1.GotoPage(System.Int32)">
            <summary>
            Gets the paged list of data from the specified page index.
            </summary>
            <param name="pageIndex">The zero based index of the page.</param>
            <returns>
            A new PageList with data from the specified page index.
            </returns>
            <remarks>
            The source, page size and total will be the same as the current PageList.
            </remarks>
        </member>
        <member name="P:CodeSmith.Data.Linq.PagedList`1.HasPreviousPage">
            <summary>
            Gets a value indicating whether this instance has previous page.
            </summary>
            <value>
            	<c>true</c> if this instance has previous page; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:CodeSmith.Data.Linq.PagedList`1.HasNextPage">
            <summary>
            Gets a value indicating whether this instance has next page.
            </summary>
            <value>
            	<c>true</c> if this instance has next page; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:CodeSmith.Data.Linq.PagedList`1.IsFirstPage">
            <summary>
            Gets a value indicating whether this instance is first page.
            </summary>
            <value>
            	<c>true</c> if this instance is first page; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:CodeSmith.Data.Linq.PagedList`1.IsLastPage">
            <summary>
            Gets a value indicating whether this instance is last page.
            </summary>
            <value>
            	<c>true</c> if this instance is last page; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:CodeSmith.Data.Linq.PagedList`1.PageCount">
            <summary>
            Gets the total page count.
            </summary>
            <value>The total page count.</value>
        </member>
        <member name="P:CodeSmith.Data.Linq.PagedList`1.PageIndex">
            <summary>
            Gets the zero based index of the page.
            </summary>
            <value>The index of the page.</value>
        </member>
        <member name="P:CodeSmith.Data.Linq.PagedList`1.PageNumber">
            <summary>
            Gets the page number. Page number is PageIndex + 1.
            </summary>
            <value>The page number.</value>
        </member>
        <member name="P:CodeSmith.Data.Linq.PagedList`1.PageSize">
            <summary>
            Gets the size of the page.
            </summary>
            <value>The size of the page.</value>
        </member>
        <member name="P:CodeSmith.Data.Linq.PagedList`1.TotalItemCount">
            <summary>
            Gets the total item count.
            </summary>
            <value>The total item count.</value>
        </member>
        <member name="M:CodeSmith.Data.Linq.SerializationExtensions.ToBinary``1(``0)">
            <summary>
            Converts the object to a binary array by serializing.
            </summary>
            <typeparam name="T">The type of item.</typeparam>
            <param name="item">The object to convert.</param>
            <returns>A serialized binary array of the object.</returns>
        </member>
        <member name="M:CodeSmith.Data.Linq.SerializationExtensions.ToObject``1(System.Byte[])">
            <summary>
            Deserializes an instance of T from a byte array.
            </summary>
            <param name="buffer">The byte array representing a T instance.</param>
            <returns>An instance of T that is deserialized from the byte array.</returns>
        </member>
        <member name="M:CodeSmith.Data.Linq.SerializationExtensions.ToXml``1(``0)">
            <summary>
            Returns an XML <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>. 
            </summary>
            <returns>An XML <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>.</returns>
        </member>
        <member name="M:CodeSmith.Data.Linq.SerializationExtensions.ToObject``1(System.String)">
            <summary>
            Deserializes an instance of T from XML.
            </summary>
            <param name="xml">The XML string representing a T instance.</param>
            <returns>An instance of T that is deserialized from the XML string.</returns>
        </member>
        <member name="M:CodeSmith.Data.Linq.SerializationExtensions.ToBinary``1(System.Collections.Generic.ICollection{``0})">
            <summary>
            Converts the collection to a binary array by serializing.
            </summary>
            <typeparam name="T">The type of items in the collection.</typeparam>
            <param name="collection">The collection to convert.</param>
            <returns>A serialized binary array of the collection.</returns>
        </member>
        <member name="M:CodeSmith.Data.Linq.SerializationExtensions.ToCollection``1(System.Byte[])">
            <summary>
            Converts the byte array to a collection by deserializing.
            </summary>
            <typeparam name="T">The type of items in the collection.</typeparam>
            <param name="buffer">The byte array to convert.</param>
            <returns>An instance of <see cref="T:System.Collections.Generic.ICollection`1"/> deserialized from the byte array.</returns>
        </member>
        <member name="M:CodeSmith.Data.Linq.XElementExtensions.AsXElement(System.String)">
            <summary>
            Converts a string to an XElement safely.  If the string is null or empty, null is returned.
            </summary>
            <param name="value">The value.</param>
            <returns></returns>
        </member>
        <member name="M:CodeSmith.Data.Linq.XElementExtensions.AsString(System.Xml.Linq.XElement)">
            <summary>
            Converts an XElement to a string safely. If element is null or invaild, null is returned.
            </summary>
            <param name="element">The element.</param>
            <returns></returns>
        </member>
        <member name="T:CodeSmith.Data.Properties.Resources">
            <summary>
              A strongly-typed resource class, for looking up localized strings, etc.
            </summary>
        </member>
        <member name="P:CodeSmith.Data.Properties.Resources.ResourceManager">
            <summary>
              Returns the cached ResourceManager instance used by this class.
            </summary>
        </member>
        <member name="P:CodeSmith.Data.Properties.Resources.Culture">
            <summary>
              Overrides the current thread's CurrentUICulture property for all
              resource lookups using this strongly typed resource class.
            </summary>
        </member>
        <member name="P:CodeSmith.Data.Properties.Resources.DefaultValidationErrorMessage">
            <summary>
              Looks up a localized string similar to Validation Error.
            </summary>
        </member>
        <member name="P:CodeSmith.Data.Properties.Resources.InvalidValidatorMessage">
            <summary>
              Looks up a localized string similar to {0} cannot be applied to a(n) {1}..
            </summary>
        </member>
        <member name="P:CodeSmith.Data.Properties.Resources.ValidatorCompareMessage">
            <summary>
              Looks up a localized string similar to {0} must be {1} to {2}..
            </summary>
        </member>
        <member name="P:CodeSmith.Data.Properties.Resources.ValidatorDefaultMessage">
            <summary>
              Looks up a localized string similar to {0} is not valid..
            </summary>
        </member>
        <member name="P:CodeSmith.Data.Properties.Resources.ValidatorLengthMessage">
            <summary>
              Looks up a localized string similar to {0} must be of length {1} - {2}..
            </summary>
        </member>
        <member name="P:CodeSmith.Data.Properties.Resources.ValidatorNotEmptyMessage">
            <summary>
              Looks up a localized string similar to {0} cannot be empty..
            </summary>
        </member>
        <member name="P:CodeSmith.Data.Properties.Resources.ValidatorNotNullMessage">
            <summary>
              Looks up a localized string similar to {0} cannot be null..
            </summary>
        </member>
        <member name="P:CodeSmith.Data.Properties.Resources.ValidatorRangeMessage">
            <summary>
              Looks up a localized string similar to {0} must fall between {1} and {2}..
            </summary>
        </member>
        <member name="P:CodeSmith.Data.Properties.Resources.ValidatorRegexMessage">
            <summary>
              Looks up a localized string similar to {0} must match the expression {1}..
            </summary>
        </member>
        <member name="P:CodeSmith.Data.Properties.Resources.ValidatorRequiredMessage">
            <summary>
              Looks up a localized string similar to {0} is a required field..
            </summary>
        </member>
        <member name="T:CodeSmith.Data.Rules.Assign.IpAddressRule">
            <summary>
            Assigns the current users IP address when the entity is committed from the <see cref="T:System.Data.Linq.DataContext"/>.
            </summary>
            <example>
            <para>Add rule using the rule manager directly.</para>
            <code><![CDATA[
            static partial void AddSharedRules()
            {
                RuleManager.AddShared<User>(new IpAddressRule("IpAddress", EntityState.Dirty));
            }
            ]]></code>
            <para>Add rule using the Metadata class and attribute.</para>
            <code><![CDATA[
            private class Metadata
            {
                // fragment of the metadata class
            
                [IpAddress(EntityState.Dirty)]
                public string IpAddress { get; set; }
            }
            ]]></code>
            </example>
            <seealso cref="T:CodeSmith.Data.Attributes.IpAddressAttribute"/>
            <remarks>
            If the <see cref="T:System.Web.HttpContext"/>.Current is not null, then the 
            <see cref="T:System.Web.HttpContext"/>.Current.Request.UserHostAddress is used as the IP address.
            Otherwise, the computers current IP address is used.
            </remarks>
        </member>
        <member name="T:CodeSmith.Data.Rules.PropertyRuleBase">
            <summary>
            A base class for property rules.
            </summary>
        </member>
        <member name="T:CodeSmith.Data.Rules.IRule">
            <summary>
            Interface defining validation rules.
            </summary>
        </member>
        <member name="M:CodeSmith.Data.Rules.IRule.Run(CodeSmith.Data.Rules.RuleContext)">
            <summary>
            Runs the specified rule using the <see cref="T:CodeSmith.Data.Rules.RuleContext"/>.
            </summary>
            <param name="context">The current <see cref="T:CodeSmith.Data.Rules.RuleContext"/>.</param>
        </member>
        <member name="P:CodeSmith.Data.Rules.IRule.Priority">
            <summary>
            Gets the rule priority. The lowest number runs first.
            </summary>
            <value>The rule priority.</value>        
        </member>
        <member name="P:CodeSmith.Data.Rules.IRule.TargetProperty">
            <summary>
            Gets the target property to apply rule to.
            </summary>
            <value>The target property.</value>
        </member>
        <member name="P:CodeSmith.Data.Rules.IRule.ErrorMessage">
            <summary>
            Gets the error message when rule fails.
            </summary>
            <value>The error message when rule fails.</value>
        </member>
        <member name="M:CodeSmith.Data.Rules.PropertyRuleBase.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Rules.PropertyRuleBase"/> class.
            </summary>
            <param name="property">The target property to apply rule to.</param>
        </member>
        <member name="M:CodeSmith.Data.Rules.PropertyRuleBase.#ctor(System.String,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Rules.PropertyRuleBase"/> class.
            </summary>
            <param name="property">The target property to apply rule to.</param>
            <param name="message">The error message when rule fails.</param>
        </member>
        <member name="M:CodeSmith.Data.Rules.PropertyRuleBase.#ctor(System.String,CodeSmith.Data.Rules.EntityState)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Rules.PropertyRuleBase"/> class.
            </summary>
            <param name="property">The target property to apply rule to.</param>
            <param name="applyState">The state of the entity in which to apply rule.</param>
        </member>
        <member name="M:CodeSmith.Data.Rules.PropertyRuleBase.#ctor(System.String,System.String,CodeSmith.Data.Rules.EntityState)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Rules.PropertyRuleBase"/> class.
            </summary>
            <param name="property">The target property.</param>
            <param name="message">The error message when rule fails.</param>
            <param name="applyState">The state of the entity in which to apply rule.</param>
        </member>
        <member name="M:CodeSmith.Data.Rules.PropertyRuleBase.Run(CodeSmith.Data.Rules.RuleContext)">
            <summary>
            Runs the specified rule using the <see cref="T:CodeSmith.Data.Rules.RuleContext"/>.
            </summary>
            <param name="context">The current <see cref="T:CodeSmith.Data.Rules.RuleContext"/>.</param>
        </member>
        <member name="M:CodeSmith.Data.Rules.PropertyRuleBase.CanRun(CodeSmith.Data.TrackedObject)">
            <summary>
            Determines whether this instance can run the specified rule based on the <see cref="T:CodeSmith.Data.TrackedObject"/>.
            </summary>
            <param name="trackedObject">The tracked object.</param>
            <returns>
            	<c>true</c> if this instance can run the rule; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:CodeSmith.Data.Rules.PropertyRuleBase.GetPropertyInfo(System.Object)">
            <summary>
            Gets the <see cref="T:System.Reflection.PropertyInfo"/> for the <see cref="P:CodeSmith.Data.Rules.PropertyRuleBase.TargetProperty"/>.
            </summary>
            <param name="target">The target object.</param>
            <returns></returns>
        </member>
        <member name="M:CodeSmith.Data.Rules.PropertyRuleBase.GetPropertyValue(System.Object)">
            <summary>
            Gets the property value for the <see cref="P:CodeSmith.Data.Rules.PropertyRuleBase.TargetProperty"/>.
            </summary>
            <param name="target">The target object.</param>
            <returns>The property value.</returns>
        </member>
        <member name="M:CodeSmith.Data.Rules.PropertyRuleBase.GetPropertyValue``1(System.Object)">
            <summary>
            Gets the property value for the <see cref="P:CodeSmith.Data.Rules.PropertyRuleBase.TargetProperty"/>.
            </summary>
            <typeparam name="T">The type of the property.</typeparam>
            <param name="target">The target object.</param>
            <returns>The property value.</returns>
        </member>
        <member name="M:CodeSmith.Data.Rules.PropertyRuleBase.SetPropertyValue(System.Object,System.Object)">
            <summary>
            Sets the property value for the <see cref="P:CodeSmith.Data.Rules.PropertyRuleBase.TargetProperty"/>.
            </summary>
            <param name="target">The target object.</param>
            <param name="value">The value to set.</param>
        </member>
        <member name="M:CodeSmith.Data.Rules.PropertyRuleBase.IsPropertyValueModified(System.Object,System.Object)">
            <summary>
            Determines whether the property value is modified.
            </summary>
            <param name="original">The original entity.</param>
            <param name="current">The current entity.</param>
            <returns>
            	<c>true</c> if the property value is modified; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:CodeSmith.Data.Rules.PropertyRuleBase.CoerceValue(System.Type,System.Object)">
            <summary>
            Attempts to coerce a value of one type into a value of a different type.
            </summary>
            <param name="desiredType">Type to which the value should be coerced.</param>
            <param name="value">The value to coerce.</param>
        </member>
        <member name="M:CodeSmith.Data.Rules.PropertyRuleBase.CoerceValue(System.Type,System.Type,System.Object)">
            <summary>
            Attempts to coerce a value of one type into a value of a different type.
            </summary>
            <param name="desiredType">Type to which the value should be coerced.</param>
            <param name="valueType">Original type of the value.</param>
            <param name="value">The value to coerce.</param>
        </member>
        <member name="P:CodeSmith.Data.Rules.PropertyRuleBase.ApplyState">
            <summary>
            Gets the state of the entity in which to apply rule.
            </summary>
            <value>The state of the apply.</value>
        </member>
        <member name="P:CodeSmith.Data.Rules.PropertyRuleBase.TargetProperty">
            <summary>
            Gets the target property to apply rule to.
            </summary>
            <value>The target property.</value>
        </member>
        <member name="P:CodeSmith.Data.Rules.PropertyRuleBase.ErrorMessage">
            <summary>
            Gets the error message when rule fails.
            </summary>
            <value>The error message when rule fails.</value>
        </member>
        <member name="P:CodeSmith.Data.Rules.PropertyRuleBase.Priority">
            <summary>
            Gets the rule priority. The lowest number runs first.
            </summary>
            <value>The rule priority.</value>
        </member>
        <member name="M:CodeSmith.Data.Rules.Assign.IpAddressRule.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Rules.Assign.IpAddressRule"/> class.
            </summary>
            <param name="property">The property.</param>
        </member>
        <member name="M:CodeSmith.Data.Rules.Assign.IpAddressRule.#ctor(System.String,CodeSmith.Data.Rules.EntityState)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Rules.Assign.IpAddressRule"/> class.
            </summary>
            <param name="property">The property.</param>
            <param name="assignState">State of the object that can be assigned.</param>
        </member>
        <member name="M:CodeSmith.Data.Rules.Assign.IpAddressRule.Run(CodeSmith.Data.Rules.RuleContext)">
            <summary>
            Runs this rule.
            </summary>
            <param name="context">The rule context.</param>
        </member>
        <member name="T:CodeSmith.Data.Rules.EntityState">
            <summary>
            The state to the tracked entity
            </summary>
        </member>
        <member name="F:CodeSmith.Data.Rules.EntityState.New">
            <summary>The entity is new.</summary>
        </member>
        <member name="F:CodeSmith.Data.Rules.EntityState.Changed">
            <summary>The entity is changed.</summary>
        </member>
        <member name="F:CodeSmith.Data.Rules.EntityState.Deleted">
            <summary>The entity is deleted.</summary>
        </member>
        <member name="F:CodeSmith.Data.Rules.EntityState.Dirty">
            <summary>The entity is new or changed.</summary>
        </member>
        <member name="F:CodeSmith.Data.Rules.EntityState.All">
            <summary>All the entity states.</summary>
        </member>
        <member name="T:CodeSmith.Data.Rules.Assign.GuidRule">
            <summary>
            Assigns a new Guid to a property when the entity is committed from the <see cref="T:System.Data.Linq.DataContext"/>.
            </summary>
            <example>
            <para>Add rule using the rule manager directly.</para>
            <code><![CDATA[
            static partial void AddSharedRules()
            {
                RuleManager.AddShared<User>(new GuidRule("UserId", EntityState.New));
            }
            ]]></code>
            <para>Add rule using the Metadata class and attribute.</para>
            <code><![CDATA[
            private class Metadata
            {
                // fragment of the metadata class
            
                [Guid(EntityState.New)]
                public Guid UserId { get; set; }
            }
            ]]></code>
            </example>
            <seealso cref="T:CodeSmith.Data.Attributes.GuidAttribute"/>
        </member>
        <member name="M:CodeSmith.Data.Rules.Assign.GuidRule.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Rules.Assign.GuidRule"/> class.
            </summary>
            <param name="property">The property.</param>
        </member>
        <member name="M:CodeSmith.Data.Rules.Assign.GuidRule.#ctor(System.String,CodeSmith.Data.Rules.EntityState)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Rules.Assign.GuidRule"/> class.
            </summary>
            <param name="property">The property.</param>
            <param name="assignState">State of the object that can be assigned.</param>
        </member>
        <member name="M:CodeSmith.Data.Rules.Assign.GuidRule.Run(CodeSmith.Data.Rules.RuleContext)">
            <summary>
            Runs this rule.
            </summary>
            <param name="context">The rule context.</param>
        </member>
        <member name="T:CodeSmith.Data.Rules.Assign.NowTimeZone">
            <summary>
            
            </summary>
        </member>
        <member name="F:CodeSmith.Data.Rules.Assign.NowTimeZone.Local">
            <summary>
            
            </summary>
        </member>
        <member name="F:CodeSmith.Data.Rules.Assign.NowTimeZone.UTC">
            <summary>
            
            </summary>
        </member>
        <member name="T:CodeSmith.Data.Rules.Assign.NowRule">
            <summary>
            Assigns the current date time to the property when the entity is committed from the <see cref="T:System.Data.Linq.DataContext"/>.
            </summary>
            <example>
            <para>Add rule using the rule manager directly.</para>
            <code><![CDATA[
            static partial void AddSharedRules()
            {
                RuleManager.AddShared<User>(new NowRule("CreatedDate", EntityState.New));
                RuleManager.AddShared<User>(new NowRule("ModifiedDate", EntityState.Dirty));
            }
            ]]></code>
            <para>Add rule using the Metadata class and attribute.</para>
            <code><![CDATA[
            private class Metadata
            {
                // fragment of the metadata class
            
                [Now(EntityState.New)]
                public DateTime CreatedDate { get; set; }
            
                [Now(EntityState.Dirty)]
                public DateTime ModifiedDate { get; set; }
            }
            ]]></code>
            </example>
            <seealso cref="T:CodeSmith.Data.Attributes.NowAttribute"/>
        </member>
        <member name="M:CodeSmith.Data.Rules.Assign.NowRule.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Rules.Assign.NowRule"/> class.
            </summary>
            <param name="property">The property.</param>
        </member>
        <member name="M:CodeSmith.Data.Rules.Assign.NowRule.#ctor(System.String,CodeSmith.Data.Rules.Assign.NowTimeZone)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Rules.Assign.NowRule"/> class.
            </summary>
            <param name="property">The property.</param>
            <param name="timeZone">The time zone.</param>
        </member>
        <member name="M:CodeSmith.Data.Rules.Assign.NowRule.#ctor(System.String,CodeSmith.Data.Rules.EntityState)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Rules.Assign.NowRule"/> class.
            </summary>
            <param name="property">The property.</param>
            <param name="assignState">State of the object that can be assigned.</param>
        </member>
        <member name="M:CodeSmith.Data.Rules.Assign.NowRule.#ctor(System.String,CodeSmith.Data.Rules.EntityState,CodeSmith.Data.Rules.Assign.NowTimeZone)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Rules.Assign.NowRule"/> class.
            </summary>
            <param name="property">The property.</param>
            <param name="assignState">State of the object that can be assigned.</param>
            <param name="timeZone">The time zone.</param>
        </member>
        <member name="M:CodeSmith.Data.Rules.Assign.NowRule.Run(CodeSmith.Data.Rules.RuleContext)">
            <summary>
            Runs this rule.
            </summary>
            <param name="context">The rule context.</param>
        </member>
        <member name="T:CodeSmith.Data.Rules.Assign.UserNameRule">
            <summary>
            Assigns the current logged in username when the entity is committed from the <see cref="T:System.Data.Linq.DataContext"/>.
            </summary>
            <example>
            <para>Add rule using the rule manager directly.</para>
            <code><![CDATA[
            static partial void AddSharedRules()
            {
                RuleManager.AddShared<User>(new UserNameRule("CreatedBy", EntityState.New));
                RuleManager.AddShared<User>(new UserNameRule("ModifiedBy", EntityState.Dirty));
            }
            ]]></code>
            <para>Add rule using the Metadata class and attribute.</para>
            <code><![CDATA[
            private class Metadata
            {
                // fragment of the metadata class
            
                [UserName(EntityState.New)]
                public string CreatedBy { get; set; }
            
                [UserName(EntityState.Dirty)]
                public string ModifiedBy { get; set; }
            }
            ]]></code>
            </example>
            <seealso cref="T:CodeSmith.Data.Attributes.NowAttribute"/>
        </member>
        <member name="M:CodeSmith.Data.Rules.Assign.UserNameRule.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Rules.Assign.UserNameRule"/> class.
            </summary>
            <param name="property">The property.</param>
        </member>
        <member name="M:CodeSmith.Data.Rules.Assign.UserNameRule.#ctor(System.String,CodeSmith.Data.Rules.EntityState)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Rules.Assign.UserNameRule"/> class.
            </summary>
            <param name="property">The property.</param>
            <param name="assignState">State of the object that can be assigned.</param>
        </member>
        <member name="M:CodeSmith.Data.Rules.Assign.UserNameRule.Run(CodeSmith.Data.Rules.RuleContext)">
            <summary>
            Runs this rule.
            </summary>
            <param name="context">The rule context.</param>
        </member>
        <member name="T:CodeSmith.Data.Rules.Assign.DefaultValueRule`1">
            <summary>
            Assign a default value to a property when the entity is committed from the <see cref="T:System.Data.Linq.DataContext"/>.
            </summary>
            <typeparam name="T">The type of the property.</typeparam>
            <example>
            <para>Add rule using the rule manager directly.</para>
            <code><![CDATA[
            static partial void AddSharedRules()
            {
                RuleManager.AddShared<User>(new DefaultValueRule<int>("Score", 100, EntityState.New));
            }
            ]]></code>
            </example>
        </member>
        <member name="M:CodeSmith.Data.Rules.Assign.DefaultValueRule`1.#ctor(System.String,`0)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Rules.Assign.DefaultValueRule`1"/> class.
            </summary>
            <param name="property">The property.</param>
            <param name="defaultValue">The default value.</param>
        </member>
        <member name="M:CodeSmith.Data.Rules.Assign.DefaultValueRule`1.#ctor(System.String,`0,CodeSmith.Data.Rules.EntityState)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Rules.Assign.DefaultValueRule`1"/> class.
            </summary>
            <param name="property">The property.</param>
            <param name="defaultValue">The default value.</param>
            <param name="assignState">State of the object that can be assigned.</param>
        </member>
        <member name="M:CodeSmith.Data.Rules.Assign.DefaultValueRule`1.Run(CodeSmith.Data.Rules.RuleContext)">
            <summary>
            Runs this rule.
            </summary>
            <param name="context">The rule context.</param>
        </member>
        <member name="P:CodeSmith.Data.Rules.Assign.DefaultValueRule`1.DefaultValue">
            <summary>
            Gets or sets the default value.
            </summary>
            <value>The default value.</value>
        </member>
        <member name="T:CodeSmith.Data.Rules.BrokenRule">
            <summary>
            A class indicating a broken rule.
            </summary>
        </member>
        <member name="M:CodeSmith.Data.Rules.BrokenRule.#ctor(CodeSmith.Data.Rules.RuleContext)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Rules.BrokenRule"/> class.
            </summary>
            <param name="context">The rule context.</param>
        </member>
        <member name="P:CodeSmith.Data.Rules.BrokenRule.Message">
            <summary>
            Gets or sets the error message.
            </summary>
            <value>The error message.</value>
        </member>
        <member name="P:CodeSmith.Data.Rules.BrokenRule.Context">
            <summary>
            Gets or sets the rule context.
            </summary>
            <value>The context.</value>
        </member>
        <member name="T:CodeSmith.Data.Rules.BrokenRuleCollection">
            <summary>
            A collection of broken rules.
            </summary>
        </member>
        <member name="M:CodeSmith.Data.Rules.BrokenRuleCollection.Filter(System.Type)">
            <summary>
            Filters the <see cref="T:CodeSmith.Data.Rules.BrokenRuleCollection"/> to the specified type.
            </summary>
            <param name="type">The type to filter.</param>
            <returns>Enumerator of <see cref="T:CodeSmith.Data.Rules.BrokenRule"/> for the type.</returns>
        </member>
        <member name="M:CodeSmith.Data.Rules.BrokenRuleCollection.Filter``1">
            <summary>
            Filters the <see cref="T:CodeSmith.Data.Rules.BrokenRuleCollection"/> to the specified type.
            </summary>
            <typeparam name="T">The type to filter.</typeparam>
            <returns>Enumerator of <see cref="T:CodeSmith.Data.Rules.BrokenRule"/> for the type.</returns>
        </member>
        <member name="M:CodeSmith.Data.Rules.BrokenRuleCollection.Filter(System.Type,System.String)">
            <summary>
            Filters the <see cref="T:CodeSmith.Data.Rules.BrokenRuleCollection"/> to the specified type and property.
            </summary>
            <param name="property">The property to filter.</param>
            <param name="type">The type to filter.</param>
            <returns>Enumerator of <see cref="T:CodeSmith.Data.Rules.BrokenRule"/> for the type.</returns>        
        </member>
        <member name="M:CodeSmith.Data.Rules.BrokenRuleCollection.Filter``1(System.String)">
            <summary>
            Filters the <see cref="T:CodeSmith.Data.Rules.BrokenRuleCollection"/> to the specified type and property.
            </summary>
            <param name="property">The property to filter.</param>
            <typeparam name="T">The type to filter.</typeparam>
            <returns>Enumerator of <see cref="T:CodeSmith.Data.Rules.BrokenRule"/> for the type.</returns>        
        </member>
        <member name="M:CodeSmith.Data.Rules.BrokenRuleCollection.GroupByEntity">
            <summary>
            Returns a list of broken rules grouped by entity instance.
            </summary>
            <returns>Dictionary of entities and their list of broken rules.</returns>        
        </member>
        <member name="T:CodeSmith.Data.Rules.BrokenRuleException">
            <summary>
            An exception class for broken rules.
            </summary>
        </member>
        <member name="M:CodeSmith.Data.Rules.BrokenRuleException.#ctor(CodeSmith.Data.Rules.BrokenRuleCollection)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Rules.BrokenRuleException"/> class.
            </summary>
            <param name="brokenRules">The broken rules.</param>
        </member>
        <member name="M:CodeSmith.Data.Rules.BrokenRuleException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Rules.BrokenRuleException"/> class.
            </summary>
            <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.</param>
            <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="info"/> parameter is null. </exception>
            <exception cref="T:System.Runtime.Serialization.SerializationException">The class name is null or <see cref="P:System.Exception.HResult"/> is zero (0). </exception>
        </member>
        <member name="M:CodeSmith.Data.Rules.BrokenRuleException.op_Implicit(CodeSmith.Data.Rules.BrokenRuleException)~System.String">
            <summary>
            Performs an implicit conversion from <see cref="T:CodeSmith.Data.Rules.BrokenRuleException"/> to <see cref="T:System.String"/>.
            </summary>
            <param name="ex">The ex.</param>
            <returns>The result of the conversion.</returns>
        </member>
        <member name="M:CodeSmith.Data.Rules.BrokenRuleException.ToString">
            <summary>
            Creates and returns a string representation of the current exception.
            </summary>
            <returns>
            A string representation of the current exception.
            </returns>
            <PermissionSet>
            	<IPermission class="System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" PathDiscovery="*AllFiles*"/>
            </PermissionSet>
        </member>
        <member name="M:CodeSmith.Data.Rules.BrokenRuleException.ToString(System.Boolean)">
            <summary>
            Creates and returns a string representation of the current exception.
            </summary>
            <param name="includeState">Boolean</param>
            <returns>
            A string representation of the current exception.
            </returns>
            <PermissionSet>
            	<IPermission class="System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" PathDiscovery="*AllFiles*"/>
            </PermissionSet>
        </member>
        <member name="P:CodeSmith.Data.Rules.BrokenRuleException.BrokenRules">
            <summary>
            Gets the broken rules.
            </summary>
            <value>The broken rules.</value>
        </member>
        <member name="P:CodeSmith.Data.Rules.BrokenRuleException.Message">
            <summary>
            Gets a message that describes the current exception.
            </summary>
            <value></value>
            <returns>The error message that explains the reason for the exception, or an empty string("").</returns>
        </member>
        <member name="T:CodeSmith.Data.Rules.RuleCollection">
            <summary>
            A collection of rules.
            </summary>
        </member>
        <member name="T:CodeSmith.Data.Rules.RuleContext">
            <summary>
            The context for a rule.
            </summary>
            <seealso cref="T:CodeSmith.Data.Rules.IRule"/>   
        </member>
        <member name="M:CodeSmith.Data.Rules.RuleContext.#ctor(CodeSmith.Data.TrackedObject,CodeSmith.Data.Rules.IRule)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Rules.RuleContext"/> class.
            </summary>
            <param name="trackedObject">The tracked object.</param>
            <param name="rule">The rule to apply.</param>
        </member>
        <member name="P:CodeSmith.Data.Rules.RuleContext.TrackedObject">
            <summary>
            Gets or sets the tracked object.
            </summary>
            <value>The tracked object.</value>
        </member>
        <member name="P:CodeSmith.Data.Rules.RuleContext.Success">
            <summary>
            Gets or sets a value indicating whether this <see cref="T:CodeSmith.Data.Rules.RuleContext"/> is success.
            </summary>
            <value><c>true</c> if success; otherwise, <c>false</c>.</value>
        </member>
        <member name="P:CodeSmith.Data.Rules.RuleContext.Message">
            <summary>
            Gets or sets the message.
            </summary>
            <value>The message.</value>
        </member>
        <member name="P:CodeSmith.Data.Rules.RuleContext.Rule">
            <summary>
            Gets or sets the rule to run.
            </summary>
            <value>The rule to run.</value>
        </member>
        <member name="T:CodeSmith.Data.Rules.RuleList">
            <summary>
            A collection of rules
            </summary>
        </member>
        <member name="M:CodeSmith.Data.Rules.RuleList.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Rules.RuleList"/> class.
            </summary>
        </member>
        <member name="M:CodeSmith.Data.Rules.RuleList.#ctor(System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Rules.RuleList"/> class.
            </summary>
            <param name="capacity">The capacity.</param>
        </member>
        <member name="M:CodeSmith.Data.Rules.RuleList.#ctor(System.Collections.Generic.IEnumerable{CodeSmith.Data.Rules.IRule})">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Rules.RuleList"/> class.
            </summary>
            <param name="collection">The collection whose elements are copied to the new list.</param>
            <exception cref="T:System.ArgumentNullException">
            	<paramref name="collection"/> is null.
            </exception>
        </member>
        <member name="P:CodeSmith.Data.Rules.RuleList.IsProcessed">
            <summary>
            Gets or sets a value indicating whether this instance is processed.
            </summary>
            <value>
            	<c>true</c> if this instance is processed; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="T:CodeSmith.Data.Rules.RuleManager">
            <summary>
            A class to manage rules.
            </summary>
        </member>
        <member name="M:CodeSmith.Data.Rules.RuleManager.#cctor">
            <summary>
            Initializes the <see cref="T:CodeSmith.Data.Rules.RuleManager"/> class.
            </summary>
        </member>
        <member name="M:CodeSmith.Data.Rules.RuleManager.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Rules.RuleManager"/> class.
            </summary>
        </member>
        <member name="M:CodeSmith.Data.Rules.RuleManager.Add``1(CodeSmith.Data.Rules.IRule)">
            <summary>
            Adds the specified rule.
            </summary>
            <typeparam name="TEntity">The type of the entity.</typeparam>
            <param name="rule">The rule to add.</param>
        </member>
        <member name="M:CodeSmith.Data.Rules.RuleManager.Remove``1(CodeSmith.Data.Rules.IRule)">
            <summary>
            Removes the specified rule.
            </summary>
            <typeparam name="TEntity">The type of the entity.</typeparam>
            <param name="rule">The rule to add.</param>
            <returns>True if the rule is found and removed.</returns>
        </member>
        <member name="M:CodeSmith.Data.Rules.RuleManager.AddShared``1(CodeSmith.Data.Rules.IRule)">
            <summary>
            Adds the shared global rules.
            </summary>
            <typeparam name="TEntity">The type of the entity.</typeparam>
            <param name="rule">The rule to add.</param>
        </member>
        <member name="M:CodeSmith.Data.Rules.RuleManager.AddShared(CodeSmith.Data.Rules.IRule,System.Type)">
            <summary>
            Adds the shared global rules.
            </summary>
            <param name="rule">The rule to add.</param>
            <param name="entityType">The type of the entity</param>
        </member>
        <member name="M:CodeSmith.Data.Rules.RuleManager.AddShared``1">
            <summary>
            Adds rules to the rule manager from any property attributes on the specified type. 
            </summary>
            <typeparam name="TEntity">The type of the entity.</typeparam>
        </member>
        <member name="M:CodeSmith.Data.Rules.RuleManager.GetRules``1">
            <summary>
            Gets the rules for a type.
            </summary>
            <typeparam name="TEntity">The type of the entity.</typeparam>
            <returns>A collection of rules.</returns>
        </member>
        <member name="M:CodeSmith.Data.Rules.RuleManager.GetRules(System.Type)">
            <summary>
            Gets the rules for a type.
            </summary>
            <param name="type">The type of the entity.</param>
            <returns>A collection of rules.</returns>
        </member>
        <member name="M:CodeSmith.Data.Rules.RuleManager.Run(System.Collections.Generic.IEnumerable{CodeSmith.Data.TrackedObject})">
            <summary>
            Run the rules for the specified <see cref="T:CodeSmith.Data.TrackedObject"/> list.
            </summary>
            <param name="objects">The <see cref="T:CodeSmith.Data.TrackedObject"/> to run rules on.</param>
            <returns><c>true</c> if rules ran successfully; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:CodeSmith.Data.Rules.RuleManager.Run(CodeSmith.Data.TrackedObject)">
            <summary>
            Run the rules for the specified <see cref="T:CodeSmith.Data.TrackedObject"/>.
            </summary>
            <param name="trackedObject">The <see cref="T:CodeSmith.Data.TrackedObject"/> to run rules on.</param>
            <returns><c>true</c> if rules ran successfully; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:CodeSmith.Data.Rules.RuleManager.Run(System.Object)">
            <summary>
            Run the rules for the specified entity.
            </summary>
            <param name="entity">The entity to run validation for.</param>
            <returns><c>true</c> if rules ran successfully; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:CodeSmith.Data.Rules.RuleManager.Run(System.Object,System.Boolean)">
            <summary>
            Run the rules for the specified entity.
            </summary>
            <param name="entity">The entity to run validation for.</param>
            <param name="modified">if set to <c>true</c> [modified].</param>
            <returns>
            	<c>true</c> if rules ran successfully; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:CodeSmith.Data.Rules.RuleManager.Run(System.Object,System.Data.Linq.DataContext)">
            <summary>
            Run the rules for the specified entity.
            </summary>
            <param name="entity">The entity to run validation for.</param>
            <param name="db">The DataContext to which the entity is attached.</param>
            <returns></returns>
        </member>
        <member name="M:CodeSmith.Data.Rules.RuleManager.Run(System.Data.Linq.DataContext)">
            <summary>
            Run the rules for the the changed objects in the <see cref="T:System.Data.Linq.DataContext"/>.
            </summary>
            <param name="dataContext">The <see cref="T:System.Data.Linq.DataContext"/> to get the <see cref="T:System.Data.Linq.ChangeSet"/> from and run rules against.</param>
            <returns><c>true</c> if rules ran successfully; otherwise, <c>false</c>.</returns>
        </member>
        <member name="P:CodeSmith.Data.Rules.RuleManager.BrokenRules">
            <summary>
            Gets the broken rules.
            </summary>
            <value>The broken rules.</value>
        </member>
        <member name="T:CodeSmith.Data.Rules.Security.AuthorizationRuleBase">
            <summary>
            A base class for authorization rules.
            </summary>
        </member>
        <member name="M:CodeSmith.Data.Rules.Security.AuthorizationRuleBase.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Rules.Security.AuthorizationRuleBase"/> class.
            </summary>
        </member>
        <member name="M:CodeSmith.Data.Rules.Security.AuthorizationRuleBase.#ctor(System.String[])">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Rules.Security.AuthorizationRuleBase"/> class.
            </summary>
            <param name="authorizedRoles">The authorized roles.</param>
        </member>
        <member name="M:CodeSmith.Data.Rules.Security.AuthorizationRuleBase.Run(CodeSmith.Data.Rules.RuleContext)">
            <summary>
            Runs the specified rule using the RuleContext.
            </summary>
            <param name="context">The current RuleContext.</param>
        </member>
        <member name="M:CodeSmith.Data.Rules.Security.AuthorizationRuleBase.IsAuthorized">
            <summary>
            Determines whether this instance is authorized.
            </summary>
            <returns>
            	<c>true</c> if this instance is authorized; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:CodeSmith.Data.Rules.Security.AuthorizationRuleBase.GetUser">
            <summary>
            Gets the current username.
            </summary>
            <returns></returns>
        </member>
        <member name="M:CodeSmith.Data.Rules.Security.AuthorizationRuleBase.GetPrincipal">
            <summary>
            Gets the current user principal.
            </summary>
            <returns></returns>
        </member>
        <member name="P:CodeSmith.Data.Rules.Security.AuthorizationRuleBase.AuthorizedRoles">
            <summary>
            Gets or sets the authorized roles.
            </summary>
            <value>The authorized roles.</value>
        </member>
        <member name="P:CodeSmith.Data.Rules.Security.AuthorizationRuleBase.ErrorMessage">
            <summary>
            Gets the error message when rule fails.
            </summary>
            <value>The error message when rule fails.</value>
        </member>
        <member name="P:CodeSmith.Data.Rules.Security.AuthorizationRuleBase.TargetProperty">
            <summary>
            Gets the target property to apply rule to.
            </summary>
            <value>The target property.</value>
        </member>
        <member name="P:CodeSmith.Data.Rules.Security.AuthorizationRuleBase.Priority">
            <summary>
            Gets the rule priority. The lowest number runs first.
            </summary>
            <value>The rule priority.</value>
        </member>
        <member name="T:CodeSmith.Data.Rules.Security.CreateRule">
            <summary>
            A rule to determine if the current user has create permission.
            </summary>
            <example>
            <para>Add rule using the rule manager directly indication which roles have access to create the object.</para>
            <code><![CDATA[
            static partial void AddSharedRules()
            {
                RuleManager.AddShared<User>(new CreateRule("Administrators", "Users"));
            }
            ]]></code>
            </example>
        </member>
        <member name="M:CodeSmith.Data.Rules.Security.CreateRule.#ctor(System.String[])">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Rules.Security.CreateRule"/> class.
            </summary>
            <param name="authorizedRoles">The authorized roles.</param>
        </member>
        <member name="M:CodeSmith.Data.Rules.Security.CreateRule.Run(CodeSmith.Data.Rules.RuleContext)">
            <summary>
            Runs the specified rule using the RuleContext.
            </summary>
            <param name="context">The current RuleContext.</param>
        </member>
        <member name="T:CodeSmith.Data.Rules.Security.DeleteRule">
            <summary>
            A rule to determine if the current user has delete permission.
            </summary>
            <example>
            <para>Add rule using the rule manager directly indication which roles have access to delete the object.</para>
            <code><![CDATA[
            static partial void AddSharedRules()
            {
                RuleManager.AddShared<User>(new DeleteRule("Administrators"));
            }
            ]]></code>
            </example>
        </member>
        <member name="M:CodeSmith.Data.Rules.Security.DeleteRule.#ctor(System.String[])">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Rules.Security.DeleteRule"/> class.
            </summary>
            <param name="authorizedRoles">The authorized roles.</param>
        </member>
        <member name="M:CodeSmith.Data.Rules.Security.DeleteRule.Run(CodeSmith.Data.Rules.RuleContext)">
            <summary>
            Runs the specified rule using the RuleContext.
            </summary>
            <param name="context">The current RuleContext.</param>
        </member>
        <member name="T:CodeSmith.Data.Rules.Security.UpdateRule">
            <summary>
            A rule to determine if the current user has update permission.
            </summary>
            <example>
            <para>Add rule using the rule manager directly indication which roles have access to update the object.</para>
            <code><![CDATA[
            static partial void AddSharedRules()
            {
                RuleManager.AddShared<User>(new UpdateRule("Administrators"));
            }
            ]]></code>
            </example>
        </member>
        <member name="M:CodeSmith.Data.Rules.Security.UpdateRule.#ctor(System.String[])">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Rules.Security.AuthorizationRuleBase"/> class.
            </summary>
            <param name="authorizedRoles">The authorized roles.</param>
        </member>
        <member name="M:CodeSmith.Data.Rules.Security.UpdateRule.Run(CodeSmith.Data.Rules.RuleContext)">
            <summary>
            Runs the specified rule using the RuleContext.
            </summary>
            <param name="context">The current RuleContext.</param>
        </member>
        <member name="T:CodeSmith.Data.Rules.Validation.CompareRule`1">
            <summary>
            A rule to compare values.
            </summary>
            <typeparam name="T">The value type.</typeparam>
            <example>
            <para>Add rule using the rule manager directly.</para>
            <code><![CDATA[
            static partial void AddSharedRules()
            {
                RuleManager.AddShared<User>(new CompareRule<int>("Age", 21, ComparisonOperator.GreaterThanOrEqual));
            }
            ]]></code>
            </example>
        </member>
        <member name="M:CodeSmith.Data.Rules.Validation.CompareRule`1.#ctor(System.String,`0)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Rules.Validation.CompareRule`1"/> class.
            </summary>
            <param name="property">The property.</param>
            <param name="value">The value.</param>
        </member>
        <member name="M:CodeSmith.Data.Rules.Validation.CompareRule`1.#ctor(System.String,`0,CodeSmith.Data.Rules.Validation.ComparisonOperator)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Rules.Validation.CompareRule`1"/> class.
            </summary>
            <param name="property">The property.</param>
            <param name="value">The value.</param>
            <param name="comparison">The comparison.</param>
        </member>
        <member name="M:CodeSmith.Data.Rules.Validation.CompareRule`1.#ctor(System.String,System.String,`0)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Rules.Validation.CompareRule`1"/> class.
            </summary>
            <param name="property">The property.</param>
            <param name="message">The message.</param>
            <param name="value">The value.</param>
        </member>
        <member name="M:CodeSmith.Data.Rules.Validation.CompareRule`1.#ctor(System.String,System.String,`0,CodeSmith.Data.Rules.Validation.ComparisonOperator)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Rules.Validation.CompareRule`1"/> class.
            </summary>
            <param name="property">The property.</param>
            <param name="message">The message.</param>
            <param name="value">The value.</param>
            <param name="comparison">The comparison.</param>
        </member>
        <member name="M:CodeSmith.Data.Rules.Validation.CompareRule`1.Run(CodeSmith.Data.Rules.RuleContext)">
            <summary>
            Runs the specified context.
            </summary>
            <param name="context">The context.</param>
        </member>
        <member name="M:CodeSmith.Data.Rules.Validation.CompareRule`1.CompareResult(System.Int32)">
            <summary>
            Tests the comparison result.
            </summary>
            <param name="result">The result.</param>
            <returns></returns>
        </member>
        <member name="P:CodeSmith.Data.Rules.Validation.CompareRule`1.ComparisonOperator">
            <summary>
            Gets or sets the comparison operator.
            </summary>
            <value>The comparison operator.</value>
        </member>
        <member name="P:CodeSmith.Data.Rules.Validation.CompareRule`1.ExpectedValue">
            <summary>
            Gets or sets the expected value.
            </summary>
            <value>The expected value.</value>
        </member>
        <member name="T:CodeSmith.Data.Rules.Validation.ComparisonOperator">
            <summary>
            The operator the Compare Validator uses.
            </summary>
        </member>
        <member name="F:CodeSmith.Data.Rules.Validation.ComparisonOperator.Equal">
            <summary>
            A comparison for equality.  
            </summary>
        </member>
        <member name="F:CodeSmith.Data.Rules.Validation.ComparisonOperator.GreaterThan">
            <summary>
            A comparison for greater than.  
            </summary>
        </member>
        <member name="F:CodeSmith.Data.Rules.Validation.ComparisonOperator.GreaterThanOrEqual">
            <summary>
            A comparison for greater than or equal to. 
            </summary>
        </member>
        <member name="F:CodeSmith.Data.Rules.Validation.ComparisonOperator.LessThan">
            <summary>
            A comparison for less than.  
            </summary>
        </member>
        <member name="F:CodeSmith.Data.Rules.Validation.ComparisonOperator.LessThanOrEqual">
            <summary>
            A comparison for less than or equal to.  
            </summary>
        </member>
        <member name="F:CodeSmith.Data.Rules.Validation.ComparisonOperator.NotEqual">
            <summary>
            A comparison for inequality.  
            </summary>
        </member>
        <member name="T:CodeSmith.Data.Rules.Validation.CustomRule`1">
            <summary>
            A rule that run a method to validate.
            </summary>
            <typeparam name="T">The property type.</typeparam>
            <example>
            <para>Add rule using the rule manager directly.</para>
            <code><![CDATA[
            static partial void AddSharedRules()
            {
                RuleManager.AddShared<User>(new CustomRule<string>("UserName", "UserName must be unique.", User.UniqueUserName));
                RuleManager.AddShared<User>(new CustomRule<RuleContext>("UserName", "UserName must be unique.", User.UniqueUserNameContext));
            }
            //This is called by the custom rule. The first argument is the property value.
            private static bool UniqueUserName(string username)
            {
                //check user name is unique, return true when valid.
                return true;
            }
            //This is called by the custom rule. The first argument is the RuleContext.
            private static void UniqueUserNameContext(RuleContext context)
            {
                //check user name is unique, return true when valid.
                context.Success = true;
            }
            ]]></code>
            </example>
            <remarks>
            The custom method should return true when the property is valid.
            </remarks>
        </member>
        <member name="M:CodeSmith.Data.Rules.Validation.CustomRule`1.#ctor(System.String,System.String,System.Predicate{`0})">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Rules.Validation.CustomRule`1"/> class.
            </summary>
            <param name="property">The property.</param>
            <param name="message">The message.</param>
            <param name="method">The method.</param>
        </member>
        <member name="M:CodeSmith.Data.Rules.Validation.CustomRule`1.#ctor(System.String,System.String,System.Action{CodeSmith.Data.Rules.RuleContext})">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Rules.Validation.CustomRule`1"/> class.
            </summary>
            <param name="property">The property.</param>
            <param name="message">The message.</param>
            <param name="method">The method.</param>
        </member>
        <member name="M:CodeSmith.Data.Rules.Validation.CustomRule`1.Run(CodeSmith.Data.Rules.RuleContext)">
            <summary>
            Runs the specified context.
            </summary>
            <param name="context">The context.</param>
        </member>
        <member name="P:CodeSmith.Data.Rules.Validation.CustomRule`1.Method">
            <summary>
            Gets or sets the method.
            </summary>
            <value>The method.</value>
        </member>
        <member name="T:CodeSmith.Data.Rules.Validation.LengthRule">
            <summary>
            A rule to check the length.
            </summary>
            <example>
            <para>Add rule using the rule manager directly.</para>
            <code><![CDATA[
            static partial void AddSharedRules()
            {
                RuleManager.AddShared<User>(new LengthRule("UserName", 100));
            }
            ]]></code>
            <para>Add rule using the Metadata class and attribute.</para>
            <code><![CDATA[
            private class Metadata
            {
                // fragment of the metadata class
            
                [StringLength(100)]            
                public string UserName { get; set; }
            }
            ]]></code>
            </example>
            <seealso cref="T:System.ComponentModel.DataAnnotations.StringLengthAttribute"/>
        </member>
        <member name="M:CodeSmith.Data.Rules.Validation.LengthRule.#ctor(System.String,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Rules.Validation.LengthRule"/> class.
            </summary>
            <param name="property">The property.</param>
            <param name="maxLength">The maximum length.</param>
        </member>
        <member name="M:CodeSmith.Data.Rules.Validation.LengthRule.#ctor(System.String,System.Int32,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Rules.Validation.LengthRule"/> class.
            </summary>
            <param name="property">The property.</param>
            <param name="minLength">The minimum length.</param>
            <param name="maxLength">The maximum length.</param>
        </member>
        <member name="M:CodeSmith.Data.Rules.Validation.LengthRule.#ctor(System.String,System.String,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Rules.Validation.LengthRule"/> class.
            </summary>
            <param name="property">The property.</param>
            <param name="message">The message.</param>
            <param name="maxLength">The maximum length.</param>
        </member>
        <member name="M:CodeSmith.Data.Rules.Validation.LengthRule.#ctor(System.String,System.String,System.Int32,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Rules.Validation.LengthRule"/> class.
            </summary>
            <param name="property">The property.</param>
            <param name="message">The message.</param>
            <param name="minLength">The minimum length.</param>
            <param name="maxLength">The maximum length.</param>
        </member>
        <member name="M:CodeSmith.Data.Rules.Validation.LengthRule.Run(CodeSmith.Data.Rules.RuleContext)">
            <summary>
            Runs the specified context.
            </summary>
            <param name="context">The context.</param>
        </member>
        <member name="P:CodeSmith.Data.Rules.Validation.LengthRule.MaxLength">
            <summary>
            Gets or sets the max length.
            </summary>
            <value>The maximum length.</value>
        </member>
        <member name="P:CodeSmith.Data.Rules.Validation.LengthRule.MinLength">
            <summary>
            Gets or sets the minimum length.
            </summary>
            <value>The minimum length.</value>
        </member>
        <member name="T:CodeSmith.Data.Rules.Validation.RangeRule`1">
            <summary>
            A rule to check if the value is between a range.
            </summary>
            <typeparam name="T">The value type.</typeparam>
            <example>
            <para>Add rule using the rule manager directly.</para>
            <code><![CDATA[
            static partial void AddSharedRules()
            {
                RuleManager.AddShared<User>(new RangeRule<int>("Age", 18, 21));
            }
            ]]></code>
            <para>Add rule using the Metadata class and attribute.</para>
            <code><![CDATA[
            private class Metadata
            {
                // fragment of the metadata class
            
                [Range(18, 21)]            
                public int Age { get; set; }
            }
            ]]></code>
            </example>
            <seealso cref="T:System.ComponentModel.DataAnnotations.RangeAttribute"/>
        </member>
        <member name="M:CodeSmith.Data.Rules.Validation.RangeRule`1.#ctor(System.String,`0,`0)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Rules.Validation.RangeRule`1"/> class.
            </summary>
            <param name="property">The property.</param>
            <param name="minValue">The min value.</param>
            <param name="maxValue">The max value.</param>
        </member>
        <member name="M:CodeSmith.Data.Rules.Validation.RangeRule`1.#ctor(System.String,System.String,`0,`0)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Rules.Validation.RangeRule`1"/> class.
            </summary>
            <param name="property">The property.</param>
            <param name="message">The message.</param>
            <param name="minValue">The min value.</param>
            <param name="maxValue">The max value.</param>
        </member>
        <member name="M:CodeSmith.Data.Rules.Validation.RangeRule`1.Run(CodeSmith.Data.Rules.RuleContext)">
            <summary>
            Runs the specified context.
            </summary>
            <param name="context">The context.</param>
        </member>
        <member name="P:CodeSmith.Data.Rules.Validation.RangeRule`1.MaxValue">
            <summary>
            Gets or sets the max value.
            </summary>
            <value>The max value.</value>
        </member>
        <member name="P:CodeSmith.Data.Rules.Validation.RangeRule`1.MinValue">
            <summary>
            Gets or sets the min value.
            </summary>
            <value>The min value.</value>
        </member>
        <member name="T:CodeSmith.Data.Rules.Validation.RegexRule">
            <summary>
            A rule to match a regular expression.
            </summary>
            <example>
            <para>Add rule using the rule manager directly.</para>
            <code><![CDATA[
            static partial void AddSharedRules()
            {
                RuleManager.AddShared<User>(new RegexRule("EmailAddress", @"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"));
            }
            ]]></code>
            <para>Add rule using the Metadata class and attribute.</para>
            <code><![CDATA[
            private class Metadata
            {
                // fragment of the metadata class
            
                [RegularExpression(@"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*")]
                public string EmailAddress { get; set; }
            }
            ]]></code>
            </example>
            <seealso cref="T:System.ComponentModel.DataAnnotations.RegularExpressionAttribute"/>
        </member>
        <member name="M:CodeSmith.Data.Rules.Validation.RegexRule.#ctor(System.String,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Rules.Validation.RegexRule"/> class.
            </summary>
            <param name="property">The property.</param>
            <param name="pattern">The pattern.</param>
        </member>
        <member name="M:CodeSmith.Data.Rules.Validation.RegexRule.#ctor(System.String,System.String,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Rules.Validation.RegexRule"/> class.
            </summary>
            <param name="property">The property.</param>
            <param name="message">The message.</param>
            <param name="pattern">The pattern.</param>
        </member>
        <member name="M:CodeSmith.Data.Rules.Validation.RegexRule.#ctor(System.String,System.Text.RegularExpressions.Regex)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Rules.Validation.RegexRule"/> class.
            </summary>
            <param name="property">The property.</param>
            <param name="regex">The regex.</param>
        </member>
        <member name="M:CodeSmith.Data.Rules.Validation.RegexRule.#ctor(System.String,System.String,System.Text.RegularExpressions.Regex)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Rules.Validation.RegexRule"/> class.
            </summary>
            <param name="property">The property.</param>
            <param name="message">The message.</param>
            <param name="regex">The regex.</param>
        </member>
        <member name="M:CodeSmith.Data.Rules.Validation.RegexRule.Run(CodeSmith.Data.Rules.RuleContext)">
            <summary>
            Runs the specified context.
            </summary>
            <param name="context">The context.</param>
        </member>
        <member name="P:CodeSmith.Data.Rules.Validation.RegexRule.Regex">
            <summary>
            Gets or sets the regex.
            </summary>
            <value>The regex.</value>
        </member>
        <member name="T:CodeSmith.Data.Rules.Validation.RequiredRule">
            <summary>
            A rule to check that the value is not null.
            </summary>
            <example>
            <para>Add rule using the rule manager directly.</para>
            <code><![CDATA[
            static partial void AddSharedRules()
            {
                RuleManager.AddShared<User>(new RequiredRule("UserName"));
            }
            ]]></code>
            <para>Add rule using the Metadata class and attribute.</para>
            <code><![CDATA[
            private class Metadata
            {
                // fragment of the metadata class
            
                [Required]
                public string UserName { get; set; }
            }
            ]]></code>
            </example>
            <seealso cref="T:System.ComponentModel.DataAnnotations.RequiredAttribute"/>
        </member>
        <member name="M:CodeSmith.Data.Rules.Validation.RequiredRule.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Rules.Validation.RequiredRule"/> class.
            </summary>
            <param name="property">The target property to apply rule to.</param>
        </member>
        <member name="M:CodeSmith.Data.Rules.Validation.RequiredRule.#ctor(System.String,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Rules.Validation.RequiredRule"/> class.
            </summary>
            <param name="property">The property.</param>
            <param name="message">The message.</param>
        </member>
        <member name="M:CodeSmith.Data.Rules.Validation.RequiredRule.Run(CodeSmith.Data.Rules.RuleContext)">
            <summary>
            Runs the specified context.
            </summary>
            <param name="context">The rule context.</param>
        </member>
        <member name="T:CodeSmith.Data.Serialization.ByteArrayTypeConverter">
            <summary>
            Implements a byte array <see cref="T:System.ComponentModel.TypeConverter"/>.
            </summary>
            <remarks>
            The converter supports an array of <see cref="T:System.Byte"/> and <see cref="T:System.Data.Linq.Binary"/>.
            </remarks>
        </member>
        <member name="M:CodeSmith.Data.Serialization.ByteArrayTypeConverter.CanConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Type)">
            <summary>
            Returns whether this converter can convert an object of the given type to the type of this converter, using the specified context.
            </summary>
            <param name="context">An <see cref="T:System.ComponentModel.ITypeDescriptorContext"/> that provides a format context.</param>
            <param name="sourceType">A <see cref="T:System.Type"/> that represents the type you want to convert from.</param>
            <returns>
            true if this converter can perform the conversion; otherwise, false.
            </returns>
        </member>
        <member name="M:CodeSmith.Data.Serialization.ByteArrayTypeConverter.CanConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Type)">
            <summary>
            Returns whether this converter can convert the object to the specified type, using the specified context.
            </summary>
            <param name="context">An <see cref="T:System.ComponentModel.ITypeDescriptorContext"/> that provides a format context.</param>
            <param name="destinationType">A <see cref="T:System.Type"/> that represents the type you want to convert to.</param>
            <returns>
            true if this converter can perform the conversion; otherwise, false.
            </returns>
        </member>
        <member name="M:CodeSmith.Data.Serialization.ByteArrayTypeConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)">
            <summary>
            Converts the given object to the type of this converter, using the specified context and culture information.
            </summary>
            <param name="context">An <see cref="T:System.ComponentModel.ITypeDescriptorContext"/> that provides a format context.</param>
            <param name="culture">The <see cref="T:System.Globalization.CultureInfo"/> to use as the current culture.</param>
            <param name="value">The <see cref="T:System.Object"/> to convert.</param>
            <returns>
            An <see cref="T:System.Object"/> that represents the converted value.
            </returns>
            <exception cref="T:System.NotSupportedException">The conversion cannot be performed. </exception>
        </member>
        <member name="M:CodeSmith.Data.Serialization.ByteArrayTypeConverter.ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type)">
            <summary>
            Converts the given value object to the specified type, using the specified context and culture information.
            </summary>
            <param name="context">An <see cref="T:System.ComponentModel.ITypeDescriptorContext"/> that provides a format context.</param>
            <param name="culture">A <see cref="T:System.Globalization.CultureInfo"/>. If null is passed, the current culture is assumed.</param>
            <param name="value">The <see cref="T:System.Object"/> to convert.</param>
            <param name="destinationType">The <see cref="T:System.Type"/> to convert the <paramref name="value"/> parameter to.</param>
            <returns>
            An <see cref="T:System.Object"/> that represents the converted value.
            </returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="destinationType"/> parameter is null. </exception>
            <exception cref="T:System.NotSupportedException">The conversion cannot be performed. </exception>
        </member>
        <member name="T:CodeSmith.Data.Serialization.JavaScriptSerializerExtensions">
            <summary>
            JavaScriptSerializer extension methods.
            </summary>
        </member>
        <member name="M:CodeSmith.Data.Serialization.JavaScriptSerializerExtensions.RegisterByteArrayConverter(System.Web.Script.Serialization.JavaScriptSerializer)">
            <summary>
            Registers the byte array converter.
            </summary>
            <param name="serializer">The <see cref="T:System.Web.Script.Serialization.JavaScriptSerializer"/> instance.</param>
        </member>
        <member name="T:CodeSmith.Data.TrackedObject`1">
            <summary>
            A class representing a tracked object.
            </summary>
            <typeparam name="T">The type of the tracked object.</typeparam>
        </member>
        <member name="M:CodeSmith.Data.TrackedObject`1.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.TrackedObject`1"/> class.
            </summary>
        </member>
        <member name="P:CodeSmith.Data.TrackedObject`1.Current">
            <summary>
            Gets the current tracked object.
            </summary>
            <value>The current.</value>
        </member>
        <member name="P:CodeSmith.Data.TrackedObject`1.IsChanged">
            <summary>
            Gets a value indicating whether this instance is changed.
            </summary>
            <value>
            	<c>true</c> if this instance is changed; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:CodeSmith.Data.TrackedObject`1.IsDeleted">
            <summary>
            Gets a value indicating whether this instance is deleted.
            </summary>
            <value>
            	<c>true</c> if this instance is deleted; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:CodeSmith.Data.TrackedObject`1.IsNew">
            <summary>
            Gets a value indicating whether this instance is new.
            </summary>
            <value><c>true</c> if this instance is new; otherwise, <c>false</c>.</value>
        </member>
        <member name="P:CodeSmith.Data.TrackedObject`1.Original">
            <summary>
            Gets the original tracked object.
            </summary>
            <value>The original.</value>
        </member>
        <member name="T:CodeSmith.Data.TrackedObject">
            <summary>
            A class representing a tracked object.
            </summary>
        </member>
        <member name="T:CodeSmith.Data.Serialization.ByteArrayConverter">
            <summary>
            Implements a byte array <see cref="T:System.Web.Script.Serialization.JavaScriptConverter"/> for the <see cref="T:System.Web.Script.Serialization.JavaScriptSerializer"/>.
            </summary>
            <remarks>
            The <see cref="T:CodeSmith.Data.Serialization.ByteArrayConverter"/> converts the byte array to a base64 string. The converter supports 
            an array of <see cref="T:System.Byte"/> and <see cref="T:System.Data.Linq.Binary"/>.
            </remarks>
        </member>
        <member name="M:CodeSmith.Data.Serialization.ByteArrayConverter.Deserialize(System.Collections.Generic.IDictionary{System.String,System.Object},System.Type,System.Web.Script.Serialization.JavaScriptSerializer)">
            <summary>
            When overridden in a derived class, converts the provided dictionary into an object of the specified type.
            </summary>
            <param name="dictionary">An <see cref="T:System.Collections.Generic.IDictionary`2"/> instance of property data stored as name/value pairs.</param>
            <param name="type">The type of the resulting object.</param>
            <param name="serializer">The <see cref="T:System.Web.Script.Serialization.JavaScriptSerializer"/> instance.</param>
            <returns>The deserialized object.</returns>
        </member>
        <member name="M:CodeSmith.Data.Serialization.ByteArrayConverter.Serialize(System.Object,System.Web.Script.Serialization.JavaScriptSerializer)">
            <summary>
            When overridden in a derived class, builds a dictionary of name/value pairs.
            </summary>
            <param name="obj">The object to serialize.</param>
            <param name="serializer">The object that is responsible for the serialization.</param>
            <returns>
            An object that contains key/value pairs that represent the object’s data.
            </returns>
        </member>
        <member name="P:CodeSmith.Data.Serialization.ByteArrayConverter.SupportedTypes">
            <summary>
            When overridden in a derived class, gets a collection of the supported types.
            </summary>
            <value></value>
            <returns>An object that implements <see cref="T:System.Collections.Generic.IEnumerable`1"/> that represents the types supported by the converter.</returns>
        </member>
        <member name="T:CodeSmith.Data.Web.LinqCacheDataSource">
            <summary>
            A LinqDataSource that provides caching for Linq queries.
            </summary>
        </member>
        <member name="M:CodeSmith.Data.Web.LinqCacheDataSource.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:CodeSmith.Data.Web.LinqCacheDataSource"/> class.
            </summary>
        </member>
        <member name="P:CodeSmith.Data.Web.LinqCacheDataSource.EnableCache">
            <summary>
            Gets or sets a value indicating whether query caching is enabled.
            </summary>
        </member>
        <member name="P:CodeSmith.Data.Web.LinqCacheDataSource.CacheProfile">
            <summary>
            Gets or sets the name of the cache profile to use. This will override the Duration property.
            </summary>
        </member>
        <member name="P:CodeSmith.Data.Web.LinqCacheDataSource.Duration">
            <summary>
            Gets or sets the time, in seconds, that the query is cached.
            </summary>
        </member>
    </members>
</doc>
